import { OAuthSession, DeviceFlowState, AuthorizationCode, AuthCodeFlowState } from './types'; import { SessionStorageBackend } from './storage'; export declare class SessionStore { private backend; private initialized; private sessions; private deviceFlows; private authCodeFlows; private authCodes; private tokenToSession; private refreshTokenToSession; private mcpSessionToOAuthSession; private cleanupIntervalId; constructor(backend?: SessionStorageBackend); initialize(): Promise; getBackendType(): string; createSession(session: OAuthSession): void; getSession(sessionId: string): OAuthSession | undefined; getSessionByToken(token: string): OAuthSession | undefined; getSessionByRefreshToken(refreshToken: string): OAuthSession | undefined; updateSession(sessionId: string, updates: Partial): boolean; deleteSession(sessionId: string): boolean; getAllSessions(): IterableIterator; getSessionCount(): number; storeDeviceFlow(state: string, flow: DeviceFlowState): void; getDeviceFlow(state: string): DeviceFlowState | undefined; getDeviceFlowByDeviceCode(deviceCode: string): DeviceFlowState | undefined; deleteDeviceFlow(state: string): boolean; getDeviceFlowCount(): number; storeAuthCodeFlow(internalState: string, flow: AuthCodeFlowState): void; getAuthCodeFlow(internalState: string): AuthCodeFlowState | undefined; deleteAuthCodeFlow(internalState: string): boolean; getAuthCodeFlowCount(): number; storeAuthCode(code: AuthorizationCode): void; getAuthCode(code: string): AuthorizationCode | undefined; deleteAuthCode(code: string): boolean; getAuthCodeCount(): number; associateMcpSession(mcpSessionId: string, oauthSessionId: string): void; getSessionByMcpSessionId(mcpSessionId: string): OAuthSession | undefined; getGitLabTokenByMcpSessionId(mcpSessionId: string): string | undefined; removeMcpSessionAssociation(mcpSessionId: string): boolean; cleanup(): void; private startCleanupInterval; stopCleanupInterval(): void; clear(): void; close(): Promise; getStats(): { sessions: number; deviceFlows: number; authCodeFlows: number; authCodes: number; }; } export declare const sessionStore: SessionStore;