import type { Request, Response } from 'express'; import type { AuthConfig } from '../config/AuthConfig.js'; import type { Authenticatable } from '../contracts/Authenticatable.js'; import type { StatefulGuard } from '../contracts/StatefulGuard.js'; import type { SupportsBasicAuth } from '../contracts/SupportsBasicAuth.js'; import type { UserProvider } from '../contracts/UserProvider.js'; import type { AuthEventDispatcher } from '../events/AuthEventDispatcher.js'; import { type HashManager } from '../hashing/HashManager.js'; import { type Session } from '../session/Session.js'; /** * Cookie + server session authentication guard. */ export declare class SessionGuard implements StatefulGuard, SupportsBasicAuth { private readonly name; private readonly provider; private readonly session; private readonly request; private readonly response; private readonly hash; private readonly dispatch; private readonly sessionCfg; private readonly appKey; private readonly guardName; private cachedUser; private rememberViaCookie; /** * @param name - Logical guard name. * @param provider - User provider. * @param session - Request session instance. * @param request - HTTP request. * @param response - HTTP response (Set-Cookie). * @param hash - Password/token hasher. * @param dispatch - Event dispatcher. * @param sessionCfg - Session config slice. * @param appKey - Secret for remember-me signing. * @param guardName - Registered guard key for events. */ constructor(name: string, provider: UserProvider, session: Session, request: Request, response: Response, hash: HashManager, dispatch: AuthEventDispatcher, sessionCfg: AuthConfig['session'], appKey: string, guardName: string); /** * @inheritdoc */ check(): Promise; /** * @inheritdoc */ guest(): Promise; /** * @inheritdoc */ user(): Promise; /** * @inheritdoc */ id(): Promise; /** * @inheritdoc */ validate(credentials: Record): Promise; /** * @inheritdoc */ hasUser(): boolean; /** * @inheritdoc */ setUser(user: Authenticatable): void; /** * @inheritdoc */ attempt(credentials: Record, remember?: boolean): Promise; /** * @inheritdoc */ login(user: Authenticatable, remember?: boolean): Promise; /** * @inheritdoc */ loginUsingId(id: string | number, remember?: boolean): Promise; /** * @inheritdoc */ logout(): Promise; /** * Validates the password and rotates the persisted remember token, invalidating other devices' remember cookies. * * @param password - Current password confirmation. */ logoutOtherDevices(password: string): Promise; /** * @inheritdoc */ viaRemember(): boolean; /** * @inheritdoc */ basic(field?: string, extra?: Record): Promise; /** * @inheritdoc */ onceBasic(field?: string, extra?: Record): Promise; private sessionUserKey; private rememberCookieName; private userFromRememberCookie; private parseBasicCredentials; private challengeBasic; } //# sourceMappingURL=SessionGuard.d.ts.map