import { BrowserContext, Page } from "playwright";
import { Agent, AgentOptions } from ".";
import { BrowserConnectorOptions } from "@/connectors/browserConnector";
import { Schema, ZodSchema } from "zod";
import z from "zod";
import EventEmitter from "eventemitter3";
export declare function startBrowserAgent(options?: AgentOptions & BrowserConnectorOptions & {
    narrate?: boolean;
}): Promise<BrowserAgent>;
type ExtractedOutput = string | number | boolean | bigint | Date | null | undefined | {
    [key: string]: ExtractedOutput;
} | ExtractedOutput[];
export interface BrowserAgentEvents {
    'nav': (url: string) => void;
    'extractStarted': (instructions: string, schema: ZodSchema) => void;
    'extractDone': (instructions: string, data: ExtractedOutput) => void;
}
export declare class BrowserAgent extends Agent {
    readonly browserAgentEvents: EventEmitter<BrowserAgentEvents>;
    constructor({ agentOptions, browserOptions }: {
        agentOptions?: Partial<AgentOptions>;
        browserOptions?: BrowserConnectorOptions;
    });
    get page(): Page;
    get context(): BrowserContext;
    nav(url: string): Promise<void>;
    extract<T extends Schema>(instructions: string, schema: T): Promise<z.infer<T>>;
}
export {};
