import type { CancelCoordinator } from "../../app/controllers/cancel-coordinator.js"; export interface CancelLadderNotice { readonly level: "info" | "warn"; readonly text: string; readonly key: string; readonly durationMs: number; } export interface CancelLadderDeps { readonly coordinator: CancelCoordinator; readonly overlay: { cancelBlockingPrompt(): boolean; }; readonly notify: (notice: CancelLadderNotice) => void; readonly requestExit: () => void; readonly now?: (() => number) | undefined; } export declare class CancelLadder { private readonly deps; private lastCtrlCAt; private lastEscapeAt; private lastEscapeHandledAt; private readonly now; constructor(deps: CancelLadderDeps); get escapeArmed(): boolean; get quitArmed(): boolean; clear(): void; disarmEscape(): void; interrupt(): void; escape(dismissed: boolean): void; }