import { type Browser, type Page } from 'puppeteer-core';
import { ServiceBubble } from '../../../types/service-bubble-class.js';
import type { BubbleContext } from '../../../types/bubble.js';
import { CredentialType } from '@bubblelab/shared-schemas';
import { type BrowserBaseParamsInput, type BrowserBaseResult } from './browserbase.schema.js';
/**
 * Active browser session stored in memory
 */
interface ActiveSession {
    sessionId: string;
    contextId: string;
    browser: Browser;
    page: Page;
    connectUrl: string;
    startTime: number;
}
/**
 * BrowserBase Service Bubble
 *
 * Provides browser automation capabilities using BrowserBase cloud browsers.
 * Supports session management, navigation, clicking, typing, JavaScript
 * execution, content extraction, screenshots, and cookie management.
 *
 * Features:
 * - Cloud-based browser sessions (BrowserBase)
 * - Session persistence via context IDs
 * - Cookie injection for authenticated sessions
 * - Full page automation (click, type, evaluate)
 * - Screenshot and content extraction
 * - Stealth mode for anti-bot avoidance
 * - Automatic CAPTCHA solving
 * - Proxy support (built-in and custom)
 *
 * Stealth Mode:
 * - Basic Stealth: Automatic fingerprint randomization
 * - Advanced Stealth: Custom Chromium for better anti-bot avoidance (Scale Plan)
 * - CAPTCHA Solving: Automatic detection and solving (enabled by default)
 *
 * Proxy Options:
 * - Built-in proxies: Residential proxies with geolocation support
 * - Custom proxies: Use your own HTTP/HTTPS proxies
 * - Routing rules: Route different domains through different proxies
 *
 * Use cases:
 * - Automated shopping workflows (Amazon, etc.)
 * - Web scraping with authentication
 * - Form automation and submission
 * - Browser-based testing
 *
 * Security Features:
 * - Sessions are isolated in BrowserBase cloud
 * - Credentials are handled securely
 * - Sessions are properly closed and cleaned up
 */
export declare class BrowserBaseBubble<T extends BrowserBaseParamsInput = BrowserBaseParamsInput> extends ServiceBubble<T, Extract<BrowserBaseResult, {
    operation: T['operation'];
}>> {
    static readonly type: "service";
    static readonly service = "browserbase";
    static readonly authType: "apikey";
    static readonly bubbleName = "browserbase";
    static readonly schema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"start_session">;
        context_id: import("zod").ZodOptional<import("zod").ZodString>;
        cookies: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
            name: import("zod").ZodString;
            value: import("zod").ZodString;
            domain: import("zod").ZodString;
            path: import("zod").ZodString;
            expires: import("zod").ZodNumber;
            httpOnly: import("zod").ZodBoolean;
            secure: import("zod").ZodBoolean;
        }, "strip", import("zod").ZodTypeAny, {
            value: string;
            path: string;
            name: string;
            domain: string;
            expires: number;
            httpOnly: boolean;
            secure: boolean;
        }, {
            value: string;
            path: string;
            name: string;
            domain: string;
            expires: number;
            httpOnly: boolean;
            secure: boolean;
        }>, "many">>;
        viewport_width: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        viewport_height: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
        proxies: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodLiteral<true>, import("zod").ZodArray<import("zod").ZodDiscriminatedUnion<"type", [import("zod").ZodObject<{
            type: import("zod").ZodLiteral<"browserbase">;
            geolocation: import("zod").ZodOptional<import("zod").ZodObject<{
                city: import("zod").ZodOptional<import("zod").ZodString>;
                state: import("zod").ZodOptional<import("zod").ZodString>;
                country: import("zod").ZodString;
            }, "strip", import("zod").ZodTypeAny, {
                country: string;
                state?: string | undefined;
                city?: string | undefined;
            }, {
                country: string;
                state?: string | undefined;
                city?: string | undefined;
            }>>;
            domainPattern: import("zod").ZodOptional<import("zod").ZodString>;
        }, "strip", import("zod").ZodTypeAny, {
            type: "browserbase";
            geolocation?: {
                country: string;
                state?: string | undefined;
                city?: string | undefined;
            } | undefined;
            domainPattern?: string | undefined;
        }, {
            type: "browserbase";
            geolocation?: {
                country: string;
                state?: string | undefined;
                city?: string | undefined;
            } | undefined;
            domainPattern?: string | undefined;
        }>, import("zod").ZodObject<{
            type: import("zod").ZodLiteral<"external">;
            server: import("zod").ZodString;
            username: import("zod").ZodOptional<import("zod").ZodString>;
            password: import("zod").ZodOptional<import("zod").ZodString>;
            domainPattern: import("zod").ZodOptional<import("zod").ZodString>;
        }, "strip", import("zod").ZodTypeAny, {
            type: "external";
            server: string;
            password?: string | undefined;
            username?: string | undefined;
            domainPattern?: string | undefined;
        }, {
            type: "external";
            server: string;
            password?: string | undefined;
            username?: string | undefined;
            domainPattern?: string | undefined;
        }>]>, "many">]>>;
        stealth: import("zod").ZodOptional<import("zod").ZodObject<{
            advancedStealth: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
            solveCaptchas: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
            captchaImageSelector: import("zod").ZodOptional<import("zod").ZodString>;
            captchaInputSelector: import("zod").ZodOptional<import("zod").ZodString>;
        }, "strip", import("zod").ZodTypeAny, {
            advancedStealth: boolean;
            solveCaptchas: boolean;
            captchaImageSelector?: string | undefined;
            captchaInputSelector?: string | undefined;
        }, {
            advancedStealth?: boolean | undefined;
            solveCaptchas?: boolean | undefined;
            captchaImageSelector?: string | undefined;
            captchaInputSelector?: string | undefined;
        }>>;
        timeout_seconds: import("zod").ZodOptional<import("zod").ZodNumber>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "start_session";
        viewport_width: number;
        viewport_height: number;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        stealth?: {
            advancedStealth: boolean;
            solveCaptchas: boolean;
            captchaImageSelector?: string | undefined;
            captchaInputSelector?: string | undefined;
        } | undefined;
        context_id?: string | undefined;
        cookies?: {
            value: string;
            path: string;
            name: string;
            domain: string;
            expires: number;
            httpOnly: boolean;
            secure: boolean;
        }[] | undefined;
        proxies?: true | ({
            type: "browserbase";
            geolocation?: {
                country: string;
                state?: string | undefined;
                city?: string | undefined;
            } | undefined;
            domainPattern?: string | undefined;
        } | {
            type: "external";
            server: string;
            password?: string | undefined;
            username?: string | undefined;
            domainPattern?: string | undefined;
        })[] | undefined;
        timeout_seconds?: number | undefined;
    }, {
        operation: "start_session";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        stealth?: {
            advancedStealth?: boolean | undefined;
            solveCaptchas?: boolean | undefined;
            captchaImageSelector?: string | undefined;
            captchaInputSelector?: string | undefined;
        } | undefined;
        context_id?: string | undefined;
        cookies?: {
            value: string;
            path: string;
            name: string;
            domain: string;
            expires: number;
            httpOnly: boolean;
            secure: boolean;
        }[] | undefined;
        viewport_width?: number | undefined;
        viewport_height?: number | undefined;
        proxies?: true | ({
            type: "browserbase";
            geolocation?: {
                country: string;
                state?: string | undefined;
                city?: string | undefined;
            } | undefined;
            domainPattern?: string | undefined;
        } | {
            type: "external";
            server: string;
            password?: string | undefined;
            username?: string | undefined;
            domainPattern?: string | undefined;
        })[] | undefined;
        timeout_seconds?: number | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"navigate">;
        session_id: import("zod").ZodString;
        url: import("zod").ZodString;
        wait_until: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<["load", "domcontentloaded", "networkidle0", "networkidle2"]>>>;
        timeout: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "navigate";
        url: string;
        timeout: number;
        session_id: string;
        wait_until: "load" | "domcontentloaded" | "networkidle0" | "networkidle2";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "navigate";
        url: string;
        session_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        timeout?: number | undefined;
        wait_until?: "load" | "domcontentloaded" | "networkidle0" | "networkidle2" | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"click">;
        session_id: import("zod").ZodString;
        selector: import("zod").ZodString;
        wait_for_navigation: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
        timeout: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "click";
        timeout: number;
        session_id: string;
        selector: string;
        wait_for_navigation: boolean;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "click";
        session_id: string;
        selector: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        timeout?: number | undefined;
        wait_for_navigation?: boolean | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"type">;
        session_id: import("zod").ZodString;
        selector: import("zod").ZodString;
        text: import("zod").ZodString;
        clear_first: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
        delay: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "type";
        text: string;
        session_id: string;
        selector: string;
        delay: number;
        clear_first: boolean;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "type";
        text: string;
        session_id: string;
        selector: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        delay?: number | undefined;
        clear_first?: boolean | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"select">;
        session_id: import("zod").ZodString;
        selector: import("zod").ZodString;
        value: import("zod").ZodString;
        timeout: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        value: string;
        operation: "select";
        timeout: number;
        session_id: string;
        selector: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        value: string;
        operation: "select";
        session_id: string;
        selector: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        timeout?: number | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"evaluate">;
        session_id: import("zod").ZodString;
        script: import("zod").ZodString;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "evaluate";
        script: string;
        session_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "evaluate";
        script: string;
        session_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_content">;
        session_id: import("zod").ZodString;
        selector: import("zod").ZodOptional<import("zod").ZodString>;
        content_type: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<["html", "text", "outer_html"]>>>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "get_content";
        session_id: string;
        content_type: "text" | "html" | "outer_html";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        selector?: string | undefined;
    }, {
        operation: "get_content";
        session_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        selector?: string | undefined;
        content_type?: "text" | "html" | "outer_html" | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"screenshot">;
        session_id: import("zod").ZodString;
        selector: import("zod").ZodOptional<import("zod").ZodString>;
        full_page: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
        format: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<["png", "jpeg", "webp"]>>>;
        quality: import("zod").ZodOptional<import("zod").ZodNumber>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        format: "png" | "jpeg" | "webp";
        operation: "screenshot";
        session_id: string;
        full_page: boolean;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        quality?: number | undefined;
        selector?: string | undefined;
    }, {
        operation: "screenshot";
        session_id: string;
        format?: "png" | "jpeg" | "webp" | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        quality?: number | undefined;
        selector?: string | undefined;
        full_page?: boolean | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"wait">;
        session_id: import("zod").ZodString;
        wait_type: import("zod").ZodEnum<["selector", "timeout", "navigation"]>;
        selector: import("zod").ZodOptional<import("zod").ZodString>;
        timeout: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "wait";
        timeout: number;
        session_id: string;
        wait_type: "timeout" | "selector" | "navigation";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        selector?: string | undefined;
    }, {
        operation: "wait";
        session_id: string;
        wait_type: "timeout" | "selector" | "navigation";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        timeout?: number | undefined;
        selector?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_cookies">;
        session_id: import("zod").ZodString;
        domain_filter: import("zod").ZodOptional<import("zod").ZodString>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "get_cookies";
        session_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        domain_filter?: string | undefined;
    }, {
        operation: "get_cookies";
        session_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        domain_filter?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"end_session">;
        session_id: import("zod").ZodString;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "end_session";
        session_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "end_session";
        session_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>]>;
    static readonly resultSchema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"start_session">;
        success: import("zod").ZodBoolean;
        session_id: import("zod").ZodOptional<import("zod").ZodString>;
        context_id: import("zod").ZodOptional<import("zod").ZodString>;
        debug_url: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "start_session";
        success: boolean;
        error: string;
        session_id?: string | undefined;
        context_id?: string | undefined;
        debug_url?: string | undefined;
    }, {
        operation: "start_session";
        success: boolean;
        error: string;
        session_id?: string | undefined;
        context_id?: string | undefined;
        debug_url?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"navigate">;
        success: import("zod").ZodBoolean;
        url: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "navigate";
        success: boolean;
        error: string;
        url?: string | undefined;
    }, {
        operation: "navigate";
        success: boolean;
        error: string;
        url?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"click">;
        success: import("zod").ZodBoolean;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "click";
        success: boolean;
        error: string;
    }, {
        operation: "click";
        success: boolean;
        error: string;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"type">;
        success: import("zod").ZodBoolean;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "type";
        success: boolean;
        error: string;
    }, {
        operation: "type";
        success: boolean;
        error: string;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"select">;
        success: import("zod").ZodBoolean;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "select";
        success: boolean;
        error: string;
    }, {
        operation: "select";
        success: boolean;
        error: string;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"evaluate">;
        success: import("zod").ZodBoolean;
        result: import("zod").ZodOptional<import("zod").ZodUnknown>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "evaluate";
        success: boolean;
        error: string;
        result?: unknown;
    }, {
        operation: "evaluate";
        success: boolean;
        error: string;
        result?: unknown;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_content">;
        success: import("zod").ZodBoolean;
        content: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "get_content";
        success: boolean;
        error: string;
        content?: string | undefined;
    }, {
        operation: "get_content";
        success: boolean;
        error: string;
        content?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"screenshot">;
        success: import("zod").ZodBoolean;
        data: import("zod").ZodOptional<import("zod").ZodString>;
        format: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "screenshot";
        success: boolean;
        error: string;
        format?: string | undefined;
        data?: string | undefined;
    }, {
        operation: "screenshot";
        success: boolean;
        error: string;
        format?: string | undefined;
        data?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"wait">;
        success: import("zod").ZodBoolean;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "wait";
        success: boolean;
        error: string;
    }, {
        operation: "wait";
        success: boolean;
        error: string;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_cookies">;
        success: import("zod").ZodBoolean;
        cookies: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
            name: import("zod").ZodString;
            value: import("zod").ZodString;
            domain: import("zod").ZodString;
            path: import("zod").ZodString;
            expires: import("zod").ZodNumber;
            httpOnly: import("zod").ZodBoolean;
            secure: import("zod").ZodBoolean;
        }, "strip", import("zod").ZodTypeAny, {
            value: string;
            path: string;
            name: string;
            domain: string;
            expires: number;
            httpOnly: boolean;
            secure: boolean;
        }, {
            value: string;
            path: string;
            name: string;
            domain: string;
            expires: number;
            httpOnly: boolean;
            secure: boolean;
        }>, "many">>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "get_cookies";
        success: boolean;
        error: string;
        cookies?: {
            value: string;
            path: string;
            name: string;
            domain: string;
            expires: number;
            httpOnly: boolean;
            secure: boolean;
        }[] | undefined;
    }, {
        operation: "get_cookies";
        success: boolean;
        error: string;
        cookies?: {
            value: string;
            path: string;
            name: string;
            domain: string;
            expires: number;
            httpOnly: boolean;
            secure: boolean;
        }[] | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"end_session">;
        success: import("zod").ZodBoolean;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "end_session";
        success: boolean;
        error: string;
    }, {
        operation: "end_session";
        success: boolean;
        error: string;
    }>]>;
    static readonly shortDescription = "Browser automation service using BrowserBase cloud browsers";
    static readonly longDescription = "\n    BrowserBase service integration for cloud-based browser automation.\n\n    Features:\n    - Cloud-based browser sessions\n    - Session persistence via context IDs\n    - Cookie injection for authenticated sessions\n    - Full page automation (click, type, evaluate)\n    - Screenshot and content extraction\n    - Stealth mode for anti-bot avoidance\n    - Automatic CAPTCHA solving\n    - Built-in and custom proxy support\n\n    Stealth Mode Options:\n    - Basic Stealth: Automatic browser fingerprint randomization (default)\n    - Advanced Stealth: Custom Chromium browser for better anti-bot avoidance (Scale Plan only)\n    - CAPTCHA Solving: Automatic detection and solving (enabled by default, can be disabled)\n    - Custom CAPTCHA selectors: For non-standard CAPTCHA providers\n\n    Proxy Options:\n    - Built-in proxies: Set proxies=true for residential proxies with geolocation\n    - Geolocation: Specify city, state (US only), and country for proxy location\n    - Custom proxies: Use your own HTTP/HTTPS proxies with authentication\n    - Routing rules: Route different domains through different proxies using domainPattern\n\n    Use cases:\n    - Automated shopping workflows (Amazon, etc.)\n    - Web scraping with authentication\n    - Form automation and submission\n    - Browser-based testing\n\n    Security Features:\n    - Sessions are isolated in BrowserBase cloud\n    - Credentials are handled securely\n    - Sessions are properly closed and cleaned up\n  ";
    static readonly alias = "browser";
    private static activeSessions;
    constructor(params?: T, context?: BubbleContext, instanceId?: string);
    /**
     * Get BrowserBase configuration from environment
     */
    private getConfig;
    /**
     * Make an API request to BrowserBase
     */
    private browserbaseApi;
    /**
     * Parse browser session credential data (cookies + contextId)
     * Credential is base64-encoded JSON to avoid escaping issues
     */
    private parseBrowserSessionCredential;
    /**
     * Normalize proxy server to valid URL (BrowserBase requires http/https)
     */
    private normalizeProxyServer;
    /**
     * Build proxy configuration for BrowserBase API
     * Converts our schema format to the API format
     */
    private buildProxyConfig;
    testCredential(): Promise<boolean>;
    protected performAction(context?: BubbleContext): Promise<Extract<BrowserBaseResult, {
        operation: T['operation'];
    }>>;
    /**
     * Start a new browser session
     */
    private startSession;
    /**
     * Navigate to a URL
     */
    private navigate;
    /**
     * Click an element
     */
    private click;
    /**
     * Type text into an element
     */
    private typeText;
    /**
     * Select an option in a <select> element using Puppeteer's page.select()
     */
    private selectOption;
    /**
     * Execute JavaScript in page context
     */
    private evaluate;
    /**
     * Get page or element content
     */
    private getContent;
    /**
     * Take a screenshot
     */
    private screenshot;
    /**
     * Wait for a condition
     */
    private waitFor;
    /**
     * Get cookies from the browser
     */
    private getCookies;
    /**
     * End a browser session
     */
    private endSession;
    protected chooseCredential(): string | undefined;
    /**
     * Get an active session by ID (for use by other bubbles)
     */
    static getSession(sessionId: string): ActiveSession | undefined;
    /**
     * Check if a session is active
     */
    static hasSession(sessionId: string): boolean;
}
export {};
//# sourceMappingURL=browserbase.d.ts.map