import React from 'react';
import type { DevelopmentMode, ToolCall } from '../../types/index.js';
import type { PendingQuestion } from '../../utils/question-queue.js';
export interface ChatInputProps {
    isCancelling: boolean;
    isToolExecuting: boolean;
    isToolConfirmationMode: boolean;
    isQuestionMode: boolean;
    pendingToolCalls: ToolCall[];
    currentToolIndex: number;
    pendingQuestion: PendingQuestion | null;
    onQuestionAnswer: (answer: string) => void;
    mcpInitialized: boolean;
    client: unknown | null;
    nonInteractivePrompt?: string;
    nonInteractiveLoadingMessage: string | null;
    customCommands: string[];
    inputDisabled: boolean;
    developmentMode: DevelopmentMode;
    contextPercentUsed: number | null;
    compactToolCounts?: Record<string, number> | null;
    onToggleCompactDisplay?: () => void;
    compactToolDisplay?: boolean;
    onToolConfirm: (confirmed: boolean) => void;
    onToolCancel: () => void;
    onSubmit: (message: string) => Promise<void>;
    onCancel: () => void;
    onToggleMode: () => void;
}
/**
 * Chat input component that handles user input and tool interactions.
 *
 * Unlike ChatHistory, this component CAN be conditionally mounted/unmounted.
 * It does not contain ink's Static component, so it's safe to hide when
 * modal dialogs are shown.
 */
export declare function ChatInput({ isCancelling, isToolExecuting, isToolConfirmationMode, isQuestionMode, pendingToolCalls, currentToolIndex, pendingQuestion, onQuestionAnswer, mcpInitialized, client, nonInteractivePrompt, nonInteractiveLoadingMessage, customCommands, inputDisabled, developmentMode, contextPercentUsed, compactToolCounts, onToggleCompactDisplay, compactToolDisplay, onToolConfirm, onToolCancel, onSubmit, onCancel, onToggleMode, }: ChatInputProps): React.ReactElement;
//# sourceMappingURL=chat-input.d.ts.map