/**
 * OverlayContainer Component
 * Smart container for managing all overlays (selectors, autocomplete, approval)
 */
import React from 'react';
import type { TextBuffer } from '../components/shared/text-buffer.js';
import type { Key } from '../hooks/useInputOrchestrator.js';
import type { Message, UIState, InputState, SessionState } from '../state/types.js';
import { type ApprovalRequest } from '../components/ApprovalPrompt.js';
import type { TuiAgentBackend } from '../agent-backend.js';
import { InputService } from '../services/InputService.js';
export interface OverlayContainerHandle {
    handleInput: (input: string, key: Key) => boolean;
}
interface OverlayContainerProps {
    ui: UIState;
    input: InputState;
    session: SessionState;
    approval: ApprovalRequest | null;
    setInput: React.Dispatch<React.SetStateAction<InputState>>;
    setUi: React.Dispatch<React.SetStateAction<UIState>>;
    setSession: React.Dispatch<React.SetStateAction<SessionState>>;
    setMessages: React.Dispatch<React.SetStateAction<Message[]>>;
    setApproval: React.Dispatch<React.SetStateAction<ApprovalRequest | null>>;
    setApprovalQueue: React.Dispatch<React.SetStateAction<ApprovalRequest[]>>;
    agent: TuiAgentBackend;
    inputService: InputService;
    buffer: TextBuffer;
    /** Source agent config file path (if available) */
    configFilePath: string | null;
    /** Callback to refresh static content (clear terminal and force re-render) */
    refreshStatic?: () => void;
    /** Callback to submit a prompt command through the normal streaming flow */
    onSubmitPromptCommand?: (commandText: string) => Promise<void>;
}
/**
 * Smart container for managing overlays
 * Handles all modal interactions (selectors, autocomplete, approval)
 */
export declare const OverlayContainer: React.ForwardRefExoticComponent<OverlayContainerProps & React.RefAttributes<OverlayContainerHandle>>;
export {};
//# sourceMappingURL=OverlayContainer.d.ts.map