import { z } from 'zod/v4';
/**
 * Broadly follows the HTTP body fields described in...
 * https://docs.browserbase.com/reference/api/create-a-session
 */
export declare const BrowserBaseSessionArgsSchema: z.ZodObject<{
    projectId: z.ZodString;
    extensionId: z.ZodOptional<z.ZodString>;
    browserSettings: z.ZodOptional<z.ZodObject<{
        context: z.ZodOptional<z.ZodObject<{
            id: z.ZodString;
        }, z.core.$strip>>;
        extensionId: z.ZodOptional<z.ZodString>;
        viewport: z.ZodOptional<z.ZodObject<{
            width: z.ZodNumber;
            height: z.ZodNumber;
        }, z.core.$strip>>;
        blockAds: z.ZodOptional<z.ZodBoolean>;
        solveCaptchas: z.ZodOptional<z.ZodBoolean>;
        advancedStealth: z.ZodOptional<z.ZodBoolean>;
    }, z.core.$strip>>;
    timeout: z.ZodOptional<z.ZodNumber>;
    keepAlive: z.ZodOptional<z.ZodBoolean>;
    proxies: z.ZodUnion<[z.ZodOptional<z.ZodBoolean>, z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
        type: z.ZodLiteral<"browserbase">;
        geolocation: z.ZodOptional<z.ZodObject<{
            country: z.ZodString;
            state: z.ZodOptional<z.ZodString>;
            city: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>>;
        domainPattern: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"external">;
        server: z.ZodString;
        username: z.ZodOptional<z.ZodString>;
        password: z.ZodOptional<z.ZodString>;
        domainPattern: z.ZodOptional<z.ZodString>;
    }, z.core.$strip>], "type">>]>;
    region: z.ZodOptional<z.ZodString>;
    userMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
}, z.core.$strip>;
export declare const BrowserConfigSchema: z.ZodObject<{
    initialState: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
        type: z.ZodLiteral<"id">;
        value: z.ZodString;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"name">;
        value: z.ZodString;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"testId">;
        value: z.ZodString;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"json">;
        value: z.ZodObject<{
            cookies: z.ZodArray<z.ZodType<{
                name: string;
                value: string;
                domain: string;
                path: string;
                expires: number;
                httpOnly: boolean;
                secure: boolean;
                sameSite: "Strict" | "Lax" | "None";
            }, unknown, z.core.$ZodTypeInternals<{
                name: string;
                value: string;
                domain: string;
                path: string;
                expires: number;
                httpOnly: boolean;
                secure: boolean;
                sameSite: "Strict" | "Lax" | "None";
            }, unknown>>>;
            origins: z.ZodArray<z.ZodType<{
                origin: string;
                localStorage: Array<{
                    name: string;
                    value: string;
                }>;
            } & {
                sessionStorage?: Array<{
                    name: string;
                    value: string;
                }>;
            }, unknown, z.core.$ZodTypeInternals<{
                origin: string;
                localStorage: Array<{
                    name: string;
                    value: string;
                }>;
            } & {
                sessionStorage?: Array<{
                    name: string;
                    value: string;
                }>;
            }, unknown>>>;
        }, z.core.$strip>;
    }, z.core.$strip>], "type">>;
    persistState: z.ZodOptional<z.ZodBoolean>;
    using: z.ZodDiscriminatedUnion<[z.ZodObject<{
        type: z.ZodLiteral<"device">;
        deviceName: z.ZodOptional<z.ZodString>;
        headless: z.ZodOptional<z.ZodBoolean>;
        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>>;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"remoteInstance">;
        url: z.ZodString;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"browserBase">;
        sessionArgs: z.ZodObject<{
            projectId: z.ZodString;
            extensionId: z.ZodOptional<z.ZodString>;
            browserSettings: z.ZodOptional<z.ZodObject<{
                context: z.ZodOptional<z.ZodObject<{
                    id: z.ZodString;
                }, z.core.$strip>>;
                extensionId: z.ZodOptional<z.ZodString>;
                viewport: z.ZodOptional<z.ZodObject<{
                    width: z.ZodNumber;
                    height: z.ZodNumber;
                }, z.core.$strip>>;
                blockAds: z.ZodOptional<z.ZodBoolean>;
                solveCaptchas: z.ZodOptional<z.ZodBoolean>;
                advancedStealth: z.ZodOptional<z.ZodBoolean>;
            }, z.core.$strip>>;
            timeout: z.ZodOptional<z.ZodNumber>;
            keepAlive: z.ZodOptional<z.ZodBoolean>;
            proxies: z.ZodUnion<[z.ZodOptional<z.ZodBoolean>, z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
                type: z.ZodLiteral<"browserbase">;
                geolocation: z.ZodOptional<z.ZodObject<{
                    country: z.ZodString;
                    state: z.ZodOptional<z.ZodString>;
                    city: z.ZodOptional<z.ZodString>;
                }, z.core.$strip>>;
                domainPattern: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>, z.ZodObject<{
                type: z.ZodLiteral<"external">;
                server: z.ZodString;
                username: z.ZodOptional<z.ZodString>;
                password: z.ZodOptional<z.ZodString>;
                domainPattern: z.ZodOptional<z.ZodString>;
            }, z.core.$strip>], "type">>]>;
            region: z.ZodOptional<z.ZodString>;
            userMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
        }, z.core.$strip>;
    }, z.core.$strip>], "type">;
}, z.core.$strip>;
export type BrowserBaseSessionArgs = z.infer<typeof BrowserBaseSessionArgsSchema>;
export type BrowserConfig = z.infer<typeof BrowserConfigSchema>;
//# sourceMappingURL=BrowserConfig.d.ts.map