export interface TextData {
    text: string;
}
export interface ExtractData {
    title: string;
    url: string;
    text: string;
    links: Array<{
        text: string;
        href: string | null;
    }>;
}
export interface DropdownOptionsData {
    options: Array<{
        value: string;
        text: string;
    }>;
}
export interface ElementsData {
    elements: unknown[];
}
export interface ToolExecutionResult<T = TextData> {
    success: boolean;
    data: T;
    error?: string;
}
export interface NavigateParams {
    url: string;
    new_tab?: boolean;
}
export interface SearchParams {
    query: string;
    engine?: 'duckduckgo' | 'google' | 'bing';
}
export interface ClickElementParams {
    index: number;
    coordinate_x?: number;
    coordinate_y?: number;
}
export interface TypeTextParams {
    index: number;
    text: string;
    clear?: boolean;
}
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_id: string;
}
export interface DoneParams {
    success: boolean;
    message?: string;
}
export interface WaitParams {
    seconds: number;
}
export interface ExtractParams {
    query?: string;
    extract_links?: boolean;
    start_from_char?: 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<unknown>>;
    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 getInteractableElements;
    private getScreenshot;
}
export declare const toolExecutionService: ToolExecutionService;
//# sourceMappingURL=ToolService.d.ts.map