/**
 * Shared approval prompt for sandbox operations (write access, network access).
 *
 * A single Component class parameterized by title, content line, and buttons.
 * Eliminates duplication between write-access and network-approval prompts.
 */
import { Container } from '../../tui/index.js';
import type { Theme } from '../theme/runtime.js';
/** User's choice from any sandbox approval prompt. */
export type SandboxChoice = 'once' | 'save' | 'deny';
interface ButtonDef {
    label: string;
    choice: SandboxChoice;
}
interface SandboxPromptConfig {
    title: string;
    content: string;
    buttons: ButtonDef[];
}
declare class SandboxPrompt extends Container {
    private selectedButton;
    private buttonContainer;
    private theme;
    private buttons;
    private onDone;
    constructor(config: SandboxPromptConfig, theme: Theme, onDone: (choice: SandboxChoice) => void);
    private renderButtons;
    handleInput(keyData: string): void;
}
/** Create a network domain approval prompt. */
export declare function createNetworkPrompt(domain: string, theme: Theme, onDone: (choice: SandboxChoice) => void): SandboxPrompt;
export {};
//# sourceMappingURL=sandbox-prompt.d.ts.map