import { z } from "zod";
import { LLMClient } from "../../llm/LLMClient.js";
import { ModelConfiguration } from "./model.js";
import { LogLine } from "./logs.js";
import { type BrowserbaseSessionCreateParams, LocalBrowserLaunchOptionsSchema } from "./api.js";
export type V3Env = "LOCAL" | "BROWSERBASE";
export declare const localBrowserLaunchOptionsSchema: z.ZodObject<{
    args: z.ZodOptional<z.ZodArray<z.ZodString>>;
    executablePath: z.ZodOptional<z.ZodString>;
    port: z.ZodOptional<z.ZodNumber>;
    userDataDir: z.ZodOptional<z.ZodString>;
    preserveUserDataDir: z.ZodOptional<z.ZodBoolean>;
    headless: z.ZodOptional<z.ZodBoolean>;
    devtools: z.ZodOptional<z.ZodBoolean>;
    chromiumSandbox: z.ZodOptional<z.ZodBoolean>;
    ignoreDefaultArgs: z.ZodOptional<z.ZodUnion<readonly [z.ZodBoolean, z.ZodArray<z.ZodString>]>>;
    proxy: z.ZodOptional<z.ZodObject<{
        server: z.ZodString;
        bypass: z.ZodOptional<z.ZodString>;
        username: z.ZodOptional<z.ZodString>;
        password: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>>;
    locale: z.ZodOptional<z.ZodString>;
    viewport: z.ZodOptional<z.ZodObject<{
        width: z.ZodNumber;
        height: z.ZodNumber;
    }, z.core.$strip>>;
    deviceScaleFactor: z.ZodOptional<z.ZodNumber>;
    hasTouch: z.ZodOptional<z.ZodBoolean>;
    ignoreHTTPSErrors: z.ZodOptional<z.ZodBoolean>;
    cdpUrl: z.ZodOptional<z.ZodString>;
    connectTimeoutMs: z.ZodOptional<z.ZodNumber>;
    downloadsPath: z.ZodOptional<z.ZodString>;
    acceptDownloads: z.ZodOptional<z.ZodBoolean>;
}, z.core.$strict>;
export type LocalBrowserLaunchOptions = z.infer<typeof LocalBrowserLaunchOptionsSchema>;
/** Constructor options for V3 */
export interface V3Options {
    env: V3Env;
    apiKey?: string;
    projectId?: string;
    /**
     * Optional: fine-tune Browserbase session creation or resume an existing session.
     */
    browserbaseSessionCreateParams?: BrowserbaseSessionCreateParams;
    browserbaseSessionID?: string;
    /**
     * Controls browser keepalive behavior. When set, it overrides any value in
     * browserbaseSessionCreateParams.keepAlive.
     */
    keepAlive?: boolean;
    localBrowserLaunchOptions?: LocalBrowserLaunchOptions;
    model?: ModelConfiguration;
    llmClient?: LLMClient;
    systemPrompt?: string;
    logInferenceToFile?: boolean;
    experimental?: boolean;
    verbose?: 0 | 1 | 2;
    selfHeal?: boolean;
    waitForCaptchaSolves?: boolean;
    actTimeoutMs?: number;
    /** Disable pino logging backend (useful for tests or minimal environments). */
    disablePino?: boolean;
    /** Optional external logger hook for integrating with host apps. */
    logger?: (line: LogLine) => void;
    /** Directory used to persist cached actions for act(). */
    cacheDir?: string;
    domSettleTimeout?: number;
    disableAPI?: boolean;
    /**
     * When true, enables server-side caching for API requests.
     * When false, disables server-side caching.
     * Defaults to true (caching enabled).
     * Can be overridden per-method in act(), extract(), and observe() options.
     */
    serverCache?: boolean;
}
