import type { RedisClient } from '../../session/session-store.js'; export interface OAuthClientRegistration { clientId: string; redirectUris: string[]; clientName?: string; } export interface PendingAuthRequest { clientId: string; redirectUri: string; codeChallenge: string; state?: string; resource: string; } export interface AuthCodeRecord { authRequestId: string; sub: string; } export interface RefreshTokenRecord { sub: string; clientId: string; resource: string; } export declare function contentfulTokenKey(sub: string): string; export declare function refreshTokenKey(token: string): string; export interface OAuthStore { registerOAuthClient(input: { redirectUris: string[]; clientName?: string; }): Promise; getOAuthClient(clientId: string): Promise; savePendingAuthRequest(request: PendingAuthRequest): Promise<{ authRequestId: string; }>; getPendingAuthRequest(authRequestId: string): Promise; saveAuthCode(code: string, record: AuthCodeRecord): Promise; consumeAuthCode(code: string): Promise; storeContentfulToken(sub: string, token: string): Promise; getContentfulToken(sub: string): Promise; saveRefreshToken(token: string, record: RefreshTokenRecord): Promise; getRefreshToken(token: string): Promise; revokeRefreshToken(token: string): Promise; } export declare function createOAuthStore(redis: RedisClient): OAuthStore; //# sourceMappingURL=store.d.ts.map