import type { Request } from 'express'; import type { Authenticatable } from '../contracts/Authenticatable.js'; import type { MustVerifyEmail } from '../contracts/MustVerifyEmail.js'; import type { AuthEventDispatcher } from '../events/AuthEventDispatcher.js'; /** * Signed URL helpers for verifying email ownership. */ export declare class EmailVerifier { private readonly secret; private readonly expireMinutes; private readonly baseUrl; private readonly dispatch; /** * @param secret - HMAC secret (typically `APP_KEY`). * @param expireMinutes - Signed link TTL. * @param baseUrl - Public application root URL. * @param dispatch - Event dispatcher. */ constructor(secret: string, expireMinutes: number, baseUrl: string, dispatch: AuthEventDispatcher); /** * Builds `/email/verify` with signed `id`, `hash`, and `expires` query parameters. */ generateVerificationUrl(user: MustVerifyEmail): Promise; /** * Validates the signed URL on the incoming request and marks the user verified. */ verify(request: Request, loadUser: (id: string) => Promise<(Authenticatable & MustVerifyEmail) | null>): Promise; } //# sourceMappingURL=EmailVerifier.d.ts.map