export type EffortConfirmAction = 'pass' | 'confirm'; /** * Auto-confirm Claude Code's mid-session "Change effort level?" dialog. * * When botmux passes a fully-qualified `/effort ` command through to * Claude Code *during* a session, the client shows a Yes/No confirmation * ("This conversation is cached… Switching to means the full history * gets re-read"). The user already expressed the target level when they typed * the command, so the second confirmation is pure friction — and because this * native slash dialog fires no hook (unlike AskUserQuestion) and is not caught * by any screen detector, an un-answered dialog silently parks the session on a * green "awaiting input" card with no way to answer from Feishu. * * This guard is *armed* only by botmux's own `/effort ` passthrough, so * it never inspects arbitrary screens. While armed it watches PTY chunks for * the effort dialog's distinctive title plus a rendered confirm option; on a * match it reports `confirm` (the caller presses Enter on the default "Yes" * row) and disarms. The caller also disarms on a timeout, so a `/effort` that * needs no confirmation (e.g. first use in a fresh session) leaves no residue. * * Bare `/effort` (no level) opens a level *picker*, not a Yes/No confirm — the * target is unknown, so it is intentionally NOT armed here. */ export declare class EffortConfirmDialogGuard { private armed; private tail; /** Arm after a `/effort ` passthrough is written to the CLI. */ arm(): void; /** Whether the guard is currently watching for the confirm dialog. */ isArmed(): boolean; /** Stop watching (fired dialog, timed out, or CLI respawn). */ disarm(): void; reset(): void; inspect(data: string): EffortConfirmAction; } /** True for `/effort ` (a confirmable switch), false for bare `/effort` * (a level picker), a multi-token line, or any other command. Anchored to a * single argument so only the confirm-dialog form arms the guard. */ export declare function isEffortLevelCommand(content: string): boolean; //# sourceMappingURL=effort-confirm-dialog.d.ts.map