import React from 'react';
import { ConversationContext } from '../hooks/useAppState.js';
import { DevelopmentMode, LLMClient, Message, ToolCall, ToolResult } from '../types/core.js';
interface UseToolHandlerProps {
    pendingToolCalls: ToolCall[];
    currentToolIndex: number;
    completedToolResults: ToolResult[];
    currentConversationContext: ConversationContext | null;
    setPendingToolCalls: (calls: ToolCall[]) => void;
    setCurrentToolIndex: (index: number) => void;
    setCompletedToolResults: (results: ToolResult[]) => void;
    setCurrentConversationContext: (context: ConversationContext | null) => void;
    setIsToolConfirmationMode: (mode: boolean) => void;
    setIsToolExecuting: (executing: boolean) => void;
    setMessages: (messages: Message[]) => void;
    addToChatQueue: (component: React.ReactNode) => void;
    setLiveComponent: (component: React.ReactNode) => void;
    getNextComponentKey: () => number;
    resetToolConfirmationState: () => void;
    onProcessAssistantResponse: (systemMessage: Message, messages: Message[]) => Promise<void>;
    client?: LLMClient | null;
    currentProvider?: string;
    setDevelopmentMode?: (mode: DevelopmentMode) => void;
    compactToolDisplay?: boolean;
}
export declare function useToolHandler({ pendingToolCalls, currentToolIndex, completedToolResults, currentConversationContext, setPendingToolCalls, setCurrentToolIndex, setCompletedToolResults, setCurrentConversationContext, setIsToolConfirmationMode, setIsToolExecuting, setMessages, addToChatQueue, setLiveComponent, getNextComponentKey, resetToolConfirmationState, onProcessAssistantResponse, client: _client, currentProvider: _currentProvider, setDevelopmentMode, compactToolDisplay, }: UseToolHandlerProps): {
    handleToolConfirmation: (confirmed: boolean) => void;
    handleToolConfirmationCancel: () => void;
    startToolConfirmationFlow: (toolCalls: ToolCall[], messagesBeforeToolExecution: Message[], assistantMsg: Message, systemMessage: Message) => void;
    continueConversationWithToolResults: (toolResults?: ToolResult[]) => Promise<void>;
    executeCurrentTool: () => Promise<void>;
};
export {};
//# sourceMappingURL=useToolHandler.d.ts.map