import React from 'react';
import type { HostRuntimeContext } from '@dexto/core';
import type { Key } from '../hooks/useInputOrchestrator.js';
export interface ApprovalRequest {
    approvalId: string;
    type: string;
    sessionId?: string;
    hostRuntime?: HostRuntimeContext;
    timeout?: number;
    timestamp: Date;
    metadata: Record<string, unknown>;
}
export interface ApprovalPromptHandle {
    handleInput: (input: string, key: Key) => boolean;
}
/**
 * Options passed when approving a request
 */
export interface ApprovalOptions {
    /** Remember this approval scope for the session */
    rememberChoice?: boolean;
    /** Form data for elicitation requests */
    formData?: Record<string, unknown>;
    /** Enable "accept all edits" mode (auto-approve future edit_file/write_file) */
    enableAcceptEditsMode?: boolean;
}
interface ApprovalPromptProps {
    approval: ApprovalRequest;
    onApprove: (options: ApprovalOptions) => void;
    onDeny: (feedback?: string) => void;
    onCancel: () => void;
}
/**
 * Compact approval prompt component that displays above the input area
 * Shows options based on approval type:
 * - Tool approval: Yes, Yes (Session), No
 * - Tool with patterns: Yes (once), pattern options, Yes (session), No
 * - Elicitation: Form with input fields
 */
export declare const ApprovalPrompt: React.ForwardRefExoticComponent<ApprovalPromptProps & React.RefAttributes<ApprovalPromptHandle>>;
export {};
//# sourceMappingURL=ApprovalPrompt.d.ts.map