import { AuthorizationSession, TokenRecord } from "../types.js"; /** * Async storage interface for OAuth token state. * * Two implementations: * - InMemoryTokenStore: for tests (no Redis dependency) * - RedisTokenStore: for production (persistence across restarts) */ export interface TokenStore { getSession(authCode: string): Promise; setSession(authCode: string, session: AuthorizationSession, ttlSeconds: number): Promise; deleteSession(authCode: string): Promise; /** Atomic read-modify-write on a session field (e.g. setting platformCode) */ updateSession(authCode: string, update: Partial): Promise; getTokenRecord(accessToken: string): Promise; setTokenRecord(accessToken: string, record: TokenRecord, ttlSeconds: number): Promise; deleteTokenRecord(accessToken: string): Promise; getRefreshIndex(refreshToken: string): Promise; setRefreshIndex(refreshToken: string, accessToken: string, ttlSeconds: number): Promise; deleteRefreshIndex(refreshToken: string): Promise; getValidationCache(accessToken: string): Promise; setValidationCache(accessToken: string, epochSeconds: number, ttlSeconds: number): Promise; deleteValidationCache(accessToken: string): Promise; getApiKeyValidation(keyHash: string): Promise<{ userId: string; } | undefined>; setApiKeyValidation(keyHash: string, data: { userId: string; }, ttlSeconds: number): Promise; deleteApiKeyValidation(keyHash: string): Promise; ping(): Promise; disconnect(): Promise; } //# sourceMappingURL=token-store.d.ts.map