import type { Redis } from 'ioredis'; import type { AuthConfig } from '../config/AuthConfig.js'; import type { SessionStore } from '../contracts/SessionStore.js'; import { Session } from './Session.js'; interface SessionFactoryDeps { readonly redis?: Redis; readonly query?: () => import('@atlex/orm').QueryBuilder; } /** * Builds {@link SessionStore} + {@link Session} instances from {@link AuthConfig}. */ export declare class SessionManager { private readonly config; private readonly deps; private sharedStore; /** * @param config - Session section of {@link AuthConfig}. * @param deps - Optional Redis client / query factory for database/redis drivers. */ constructor(config: AuthConfig['session'], deps?: SessionFactoryDeps); /** * @returns A store matching {@link AuthConfig.session.driver}. */ store(): SessionStore; /** * Opens file-based stores with the configured `files` path. */ openStore(): Promise; /** * @returns New session instance bound to the shared store. */ session(): Session; /** * When using the cookie store, forwards the raw `Cookie` header before reads. * * @param cookieHeader - `Cookie` header from the request. */ primeCookieStore(cookieHeader: string | undefined): void; /** * When using the cookie store, returns the serialized cookie payload after writes. */ cookieStorePayload(): string | null; } export {}; //# sourceMappingURL=SessionManager.d.ts.map