import { CookieOptions as ExpressCookieOptions } from 'express'; import { NestAuthUser } from '../../user/entities/user.entity'; import { SessionDataPayload, SessionPayload, JWTTokenPayload } from './token-payload.interface'; import type { SessionStore } from '../../session/interfaces/session-store.interface'; export declare enum SessionStorageType { REDIS = "redis", DATABASE = "database", MEMORY = "memory", CUSTOM = "custom" } export interface RedisSessionOptions { url?: string; host?: string; port?: number; password?: string; db?: number; tls?: Record; keyPrefix?: string; ttlSeconds?: number; enableOfflineQueue?: boolean; retryStrategy?: (times: number) => number | null; reconnectOnError?: (error: Error) => boolean | number; maxRetriesPerRequest?: number | null; } export interface SessionOptions { storageType?: SessionStorageType; redisUrl?: string; redis?: RedisSessionOptions; store?: SessionStore | (() => SessionStore | Promise); accessTokenValidity?: number | string; refreshTokenValidity?: number | string; refreshTokenReuse?: { revokeSession?: boolean; }; cookieOptions?: CookieOptions; accessTokenType?: 'header' | 'cookie' | null; jwt?: { secret: string; validateSecretStrength?: boolean; enableLoginProvider?: boolean; validateToken?: (payload: JWTTokenPayload, session: SessionPayload) => Promise; }; maxSessionsPerUser?: number; slidingExpiration?: boolean; allowMultipleAccounts?: boolean; touchInterval?: number | string; customizeSessionData?: (defaultData: SessionDataPayload, user: NestAuthUser) => Promise | SessionDataPayload; customizeTokenPayload?: (defaultPayload: JWTTokenPayload, session: SessionPayload) => Promise | JWTTokenPayload; onCreated?: (session: SessionPayload, user: any) => Promise | void; onRefreshed?: (oldSession: SessionPayload, newSession: SessionPayload) => Promise | void; onRevoked?: (session: SessionPayload, reason: 'logout' | 'expired' | 'admin' | 'security' | 'password_change') => Promise | void; } export type CookieOptions = Omit; //# sourceMappingURL=session-options.interface.d.ts.map