/// import type { DB, DBTransaction, LevelPath } from '@matrixai/db'; import type { SessionToken } from './types.js'; import type KeyRing from '../keys/KeyRing.js'; import Logger from '@matrixai/logger'; import { createDestroyStartStop } from '@matrixai/async-init'; interface SessionManager extends createDestroyStartStop.CreateDestroyStartStop { } declare class SessionManager { static createSessionManager({ db, keyRing, expiry, logger, fresh, }: { db: DB; keyRing: KeyRing; expiry?: number; logger?: Logger; fresh?: boolean; }): Promise; readonly expiry?: number; protected logger: Logger; protected db: DB; protected keyRing: KeyRing; protected sessionsDbPath: LevelPath; constructor({ db, keyRing, expiry, logger, }: { db: DB; keyRing: KeyRing; expiry?: number; logger: Logger; }); start({ fresh, }?: { fresh?: boolean; }): Promise; stop(): Promise; destroy(): Promise; resetKey(tran?: DBTransaction): Promise; /** * Creates session token * This is not blocked by key reset * @param expiry Seconds from now or default * @param tran */ createToken(expiry?: number | undefined, tran?: DBTransaction): Promise; verifyToken(token: SessionToken, tran?: DBTransaction): Promise; protected setupKey(): Promise; } export default SessionManager;