/** ~2 minutes: long enough for a human to read a preview and confirm, short enough to not linger. */ export declare const RESTORE_TOKEN_TTL_MS = 120000; export interface IssuedRestoreToken { readonly token: string; readonly expiresAt: number; } /** * A tiny map-backed store of restore-confirmation tokens. Not exported through * the SDK public surface, constructed once per daemon at checkpoint-route * registration and shared between the preview and restore handlers. */ export declare class RestoreTokenStore { private readonly now; private readonly ttlMs; private readonly tokens; constructor(now?: () => number, ttlMs?: number); /** Mint a fresh single-use token bound to `checkpointId`. */ issue(checkpointId: string): IssuedRestoreToken; /** * Consume `token` for a restore of `checkpointId`. Returns true only when the * token exists, has not expired, and was minted for this exact checkpoint id. * The token is removed on any consume attempt that finds it (success or * checkpoint-id mismatch), so it can never be reused. */ consume(token: string, checkpointId: string): boolean; /** Drop every token past its TTL. Called opportunistically on issue. */ private pruneExpired; } //# sourceMappingURL=checkpoint-restore-tokens.d.ts.map