import type { IChallengeAssessRequest, IChallengeDecision, IChallengeRenderRequest, IChallengeRenderResponse, IChallengeType, IChallengeTypeManifest, IChallengeVerifyRequest, IChallengeVerifyResult } from '../interfaces.js'; export interface IWaitChallengeTypeOptions { defaultWaitSeconds?: number; defaultTtlSeconds?: number; maxWaitSeconds?: number; maxTtlSeconds?: number; maxStates?: number; } export declare class WaitChallengeType implements IChallengeType { readonly challengeType = "wait"; private readonly defaultWaitSeconds; private readonly defaultTtlSeconds; private readonly maxWaitSeconds; private readonly maxTtlSeconds; private readonly maxStates; private states; private cleanupTimer?; private nextCleanupAt?; constructor(optionsArg?: IWaitChallengeTypeOptions); getManifest(): IChallengeTypeManifest; assess(requestArg: IChallengeAssessRequest): Promise; render(requestArg: IChallengeRenderRequest): Promise; verify(requestArg: IChallengeVerifyRequest): Promise; private getNumberSetting; private boundNumber; private normalizeNumberOption; private cleanupExpired; private enforceMaxStates; private scheduleCleanup; private scheduleNextCleanupFromStates; private clearCleanupTimer; private stateToSettings; private settingsToState; private renderHtml; private escapeHtml; private jsonForHtmlScript; }