import type { CacheAdapter } from './InMemoryCache.js';
import type { DefaultOptions } from './types.js';
export declare class SessionStore {
    private cacheAdapter;
    private defaultOptions;
    namespace: string;
    constructor(cacheAdapter: CacheAdapter, defaultOptions: DefaultOptions);
    generateSessionToken(): Promise<string>;
    setSession(sessionToken: string, ttl: number): Promise<void>;
    getSession(sessionToken: string): Promise<boolean>;
    deleteSession(sessionToken: string): Promise<void>;
    getCookieHeaderValue(token: string): string;
}
export declare class SessionJWTStore {
    defaultOptions: DefaultOptions;
    signer: (payload: import("fast-jwt").SignerPayload) => string;
    verifier: (token: import("fast-jwt").Bufferable) => any;
    constructor(defaultOptions: DefaultOptions);
    generateSessionToken(): Promise<string>;
    setSession(_sessionToken: string, _ttl: number): Promise<boolean>;
    getSession(jwtToken: string): Promise<boolean>;
    deleteSession(_sessionToken: string): Promise<boolean>;
    getCookieHeaderValue(token: string): string;
}
export declare class CSRFTokenStore {
    cacheAdapter: CacheAdapter;
    defaultOptions: DefaultOptions;
    namespace: string;
    constructor(cacheAdapter: CacheAdapter, defaultOptions: DefaultOptions);
    generateCSRFToken(): Promise<`${string}-${string}-${string}-${string}-${string}`>;
    getCSRFToken(csrfToken: string): Promise<boolean>;
    deleteCSRFToken(csrfToken: string): Promise<void>;
}
export declare class FakeCSRFTokenStore {
    generateCSRFToken(): Promise<`${string}-${string}-${string}-${string}-${string}`>;
    getCSRFToken(_csrfToken: string): Promise<boolean>;
    deleteCSRFToken(_csrfToken: string): Promise<boolean>;
}
export declare class RateLimiter {
    defaultOptions: DefaultOptions;
    failedCalls: Map<any, any>;
    constructor(defaultOptions: DefaultOptions);
    incrementFailedCall(ipOrCookie: string): any;
    decrementFailedCall(ipOrCookie: string): void;
    checkRateLimit(ipOrCookie: string): boolean;
}
export declare class JWTManagement {
    defaultOptions: DefaultOptions;
    signer: (payload: import("fast-jwt").SignerPayload) => string;
    verifier: (token: import("fast-jwt").Bufferable) => any;
    constructor(defaultOptions: DefaultOptions);
    generateJWT(): string;
    verifyJWT(jwtToken: string): any;
    getJWTCookieHeaderValue(jwtToken: string): string;
}
