package repository

import (
	"context"
	"time"

	"gopkg.in/square/go-jose.v2"
)

type KeyRepository interface {
	GenerateSigningKeyPair(ctx context.Context, algorithm string) error
	GetSigningKey(ctx context.Context, keyCh chan<- jose.SigningKey, errCh chan<- error, timer <-chan time.Time)
	GetKeySet(ctx context.Context) (*jose.JSONWebKeySet, error)
}