import type { CookieSerializeOptions } from 'cookie'; import type express from 'express'; export interface IdGenerator { generate: () => string; } export declare class FakeIdGenerator implements IdGenerator { private static id; static reset(): void; generate(): string; } export interface Session { id: string | null; changeId: () => void; } declare abstract class BaseSession implements Session { protected _id: string | null; get id(): string | null; abstract changeId(): void; } export declare class FakeSession extends BaseSession { private readonly idGenerator; constructor(idGenerator?: IdGenerator); changeId(): void; } export declare class ExpressHeaderSession extends BaseSession { private readonly req; private readonly res; private readonly idGenerator; constructor(req: express.Request, res: express.Response, idGenerator?: IdGenerator); changeId(): void; } export declare class ExpressCookieSession extends BaseSession { private readonly req; private readonly res; private readonly cookieName; private readonly cookieOptions; private readonly idGenerator; constructor(req: express.Request, res: express.Response, cookieName: string, cookieOptions?: CookieSerializeOptions, idGenerator?: IdGenerator); changeId(): void; } export {}; //# sourceMappingURL=session.d.ts.map