/**
 * Password Reset Token Broker
 *
 * Framework-agnostic, storage-pluggable password reset token flow.
 *
 * - Generates high-entropy tokens for a given identifier (usually an email).
 * - Stores only a SHA-256 hash of the token (one active token per identifier).
 * - Supports verification and one-time consumption.
 */
export interface PasswordResetTokenRecord {
    identifier: string;
    tokenHash: string;
    createdAt: Date;
    expiresAt: Date;
}
export interface IPasswordResetTokenStore {
    set(record: PasswordResetTokenRecord): void | Promise<void>;
    get(identifier: string): PasswordResetTokenRecord | null | Promise<PasswordResetTokenRecord | null>;
    delete(identifier: string): void | Promise<void>;
    cleanup?(now?: Date): number | Promise<number>;
    clear?(): void | Promise<void>;
}
export interface IPasswordResetTokenBroker {
    createToken(identifier: string): Promise<string>;
    verifyToken(identifier: string, token: string): Promise<boolean>;
    consumeToken(identifier: string, token: string): Promise<boolean>;
}
export interface PasswordResetTokenBrokerOptions {
    store?: IPasswordResetTokenStore;
    ttlMs?: number;
    tokenBytes?: number;
    now?: () => Date;
}
export interface PasswordResetTokenBrokerType {
    create(options?: PasswordResetTokenBrokerOptions): IPasswordResetTokenBroker;
    createInMemoryStore(): IPasswordResetTokenStore;
}
export declare const PasswordResetTokenBroker: PasswordResetTokenBrokerType;
//# sourceMappingURL=PasswordResetTokenBroker.d.ts.map