/** * Native OS Dialog Fallback * * Provides native OS dialog boxes for when MCP elicitation is not supported. * Works independently of the MCP stdio protocol. * * Timeout Strategy: * - Short timeout (45s) for AI responsiveness * - Cached responses for retry support * - Clear user feedback on timeout */ export interface DialogOptions { title: string; message: string; buttons?: string[]; defaultButton?: number; icon?: 'warning' | 'info' | 'error' | 'question'; timeoutSeconds?: number; } export interface DialogResult { button: string; cancelled: boolean; timedOut?: boolean; stillPending?: boolean; } /** * Show a native OS dialog box with retry support * * Falls back through different methods based on OS: * - macOS: AppleScript display dialog * - Windows: PowerShell dialogs * - Linux: zenity or kdialog * * Retry Mechanism: * 1. First call: Shows dialog with short timeout (45s), caches promise * 2. If timeout before user responds: Returns timedOut=true, stillPending=true * 3. Retry call: Checks cache, returns result if user already responded * * @param options Dialog configuration * @returns Which button was clicked and whether user cancelled/timed out */ export declare function showNativeDialog(options: DialogOptions): Promise; /** * Show a confirmation dialog with Approve/Cancel buttons * * Convenience wrapper around showNativeDialog with retry support * * @returns Object with approved flag and retry information */ export declare function showConfirmDialog(title: string, message: string, approveText?: string, cancelText?: string): Promise<{ approved: boolean; timedOut?: boolean; stillPending?: boolean; }>; //# sourceMappingURL=native-dialog.d.ts.map