import { LanguageModelV1Prompt } from "@ai-sdk/provider";
import { Agent } from "../base";
import { AgentContext } from "../../core/context";
import { ToolExecuter, IMcpClient } from "../../types";
export declare const AGENT_NAME = "Browser";
export default abstract class BaseBrowserAgent extends Agent {
    protected abstract screenshot(agentContext: AgentContext): Promise<{
        imageBase64: string;
        imageType: "image/jpeg" | "image/png";
    }>;
    protected abstract navigate_to(agentContext: AgentContext, url: string): Promise<{
        url: string;
        title?: string;
    }>;
    protected abstract get_all_tabs(agentContext: AgentContext): Promise<Array<{
        tabId: number;
        url: string;
        title: string;
    }>>;
    protected abstract switch_tab(agentContext: AgentContext, tabId: number): Promise<{
        tabId: number;
        url: string;
        title: string;
    }>;
    protected go_back(agentContext: AgentContext): Promise<void>;
    protected extract_page_content(agentContext: AgentContext, variable_name?: string): Promise<{
        title: string;
        page_url: string;
        page_content: string;
    }>;
    protected controlMcpTools(agentContext: AgentContext, messages: LanguageModelV1Prompt, loopNum: number): Promise<{
        mcpTools: boolean;
        mcpParams?: Record<string, unknown>;
    }>;
    protected toolExecuter(mcpClient: IMcpClient, name: string): ToolExecuter;
    protected get_current_page(agentContext: AgentContext): Promise<{
        url: string;
        title?: string;
        tabId?: number;
    }>;
    protected lastToolResult(messages: LanguageModelV1Prompt): {
        id: string;
        toolName: string;
        args: unknown;
        result: unknown;
        isError?: boolean;
    } | null;
    protected toolUseNames(messages?: LanguageModelV1Prompt): string[];
    protected abstract execute_script(agentContext: AgentContext, func: (...args: any[]) => void, args: any[]): Promise<any>;
    protected execute_mcp_script(agentContext: AgentContext, script: string): Promise<string | number | Record<string, any> | undefined>;
}
export { BaseBrowserAgent };
//# sourceMappingURL=browser_base.d.ts.map