import { Logger } from '@rondo.dev/logger'; import { Store } from 'express-session'; import { Repository } from 'typeorm'; import { DefaultSession } from './DefaultSession'; declare type SessionData = Express.SessionData; declare type Callback = (err?: any, session?: SessionData) => void; declare type CallbackErr = (err?: any) => void; export interface SessionStoreOptions { readonly ttl: number; readonly cleanupDelay: number; readonly getRepository: RepositoryFactory; readonly logger: Logger; buildSession(sessionData: SessionData, session: DefaultSession): S; } export declare type RepositoryFactory = () => Repository; export declare class SessionStore extends Store { protected readonly options: SessionStoreOptions; protected readonly getRepository: RepositoryFactory; readonly cleanup: { (...args: never[]): void; cancel: () => void; }; constructor(options: SessionStoreOptions); protected promiseToCallback(promise: Promise, callback?: (err: any, result?: T | undefined) => void): Promise; get: (sid: string, callback: Callback) => void; set: (sid: string, session: Express.SessionData, callback?: CallbackErr | undefined) => void; destroy: (sid: string, callback?: CallbackErr | undefined) => void; touch: (sid: string, session: Express.SessionData, callback?: CallbackErr | undefined) => void; protected saveSession(session: S): Promise; protected getTTL(session: SessionData): number; } export {}; //# sourceMappingURL=SessionStore.d.ts.map