export interface ToolExecutionResult {
    success: boolean;
    result: string;
    error?: string;
    recoveryInfo?: {
        originalIndex: number;
        recoveredIndex?: number;
        domReindexed: boolean;
    };
}
export interface NavigateParams {
    url: string;
    new_tab?: boolean;
}
export interface SearchParams {
    query: string;
    engine?: 'duckduckgo' | 'google' | 'bing';
}
export interface ClickElementParams {
    index: number;
}
export interface TypeTextParams {
    index: number;
    text: string;
}
export interface ScrollParams {
    direction: 'up' | 'down' | 'left' | 'right';
}
export interface ScrollToTextParams {
    text: string;
}
export interface SendKeysParams {
    index: number;
    keys: string;
}
export interface SelectDropdownOptionParams {
    index: number;
    option: string;
}
export interface GetDropdownOptionsParams {
    index: number;
}
export interface UploadFileParams {
    index: number;
    path: string;
}
export interface SwitchTabParams {
    tab_index: number;
}
export interface DoneParams {
    success: boolean;
    message?: string;
}
export interface WaitParams {
    seconds: number;
}
export declare class ToolExecutionService {
    private static instance;
    private constructor();
    static getInstance(): ToolExecutionService;
    executeTool(toolName: string, args: Record<string, unknown>, mode?: string, explanation?: string): Promise<ToolExecutionResult>;
    private requiresHighlight;
    private navigate;
    private search;
    private clickElement;
    private typeText;
    private scroll;
    private scrollToText;
    private extract;
    private goBack;
    private wait;
    private selectDropdownOption;
    private getDropdownOptions;
    private sendKeys;
    /**
     * Simulate actual browser behavior for special keys
     * Since programmatic KeyboardEvents are not "trusted", we need to
     * manually trigger the expected behavior
     */
    private simulateKeyAction;
    private uploadFile;
    private closeTab;
    private switchTab;
    private done;
    private getHtml;
    private getScreenshot;
}
export declare const toolExecutionService: ToolExecutionService;
//# sourceMappingURL=ToolService.d.ts.map