import { ToolBubble } from '../../../../types/tool-bubble-class.js';
import type { BubbleContext } from '../../../../types/bubble.js';
import { CredentialType } from '@bubblelab/shared-schemas';
import { type LinkedInConnectionToolParamsInput, type LinkedInConnectionToolResult } from './schema.js';
/**
 * Recordable LinkedIn Connection Tool
 *
 * A tool bubble for automating LinkedIn connection requests with step recording.
 * Each major action is decorated with @RecordableStep to capture before/after
 * screenshots, URLs, and timing information.
 */
export declare class LinkedInConnectionTool<T extends LinkedInConnectionToolParamsInput = LinkedInConnectionToolParamsInput> extends ToolBubble<T, LinkedInConnectionToolResult> {
    static readonly bubbleName: "linkedin-connection-tool";
    static readonly schema: import("zod").ZodObject<{
        operation: import("zod").ZodEnum<["send_connection"]>;
        profile_url: import("zod").ZodString;
        message: import("zod").ZodOptional<import("zod").ZodString>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
        proxy: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodObject<{
            type: import("zod").ZodEnum<["none"]>;
        }, "strip", import("zod").ZodTypeAny, {
            type: "none";
        }, {
            type: "none";
        }>, import("zod").ZodObject<{
            type: import("zod").ZodEnum<["browserbase"]>;
        }, "strip", import("zod").ZodTypeAny, {
            type: "browserbase";
        }, {
            type: "browserbase";
        }>, import("zod").ZodObject<{
            type: import("zod").ZodEnum<["custom"]>;
            proxy: import("zod").ZodObject<{
                id: import("zod").ZodString;
                server: import("zod").ZodString;
                username: import("zod").ZodOptional<import("zod").ZodString>;
                password: import("zod").ZodOptional<import("zod").ZodString>;
            }, "strip", import("zod").ZodTypeAny, {
                id: string;
                server: string;
                password?: string | undefined;
                username?: string | undefined;
            }, {
                id: string;
                server: string;
                password?: string | undefined;
                username?: string | undefined;
            }>;
        }, "strip", import("zod").ZodTypeAny, {
            type: "custom";
            proxy: {
                id: string;
                server: string;
                password?: string | undefined;
                username?: string | undefined;
            };
        }, {
            type: "custom";
            proxy: {
                id: string;
                server: string;
                password?: string | undefined;
                username?: string | undefined;
            };
        }>]>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "send_connection";
        profile_url: string;
        message?: string | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        proxy?: {
            type: "none";
        } | {
            type: "browserbase";
        } | {
            type: "custom";
            proxy: {
                id: string;
                server: string;
                password?: string | undefined;
                username?: string | undefined;
            };
        } | undefined;
    }, {
        operation: "send_connection";
        profile_url: string;
        message?: string | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        proxy?: {
            type: "none";
        } | {
            type: "browserbase";
        } | {
            type: "custom";
            proxy: {
                id: string;
                server: string;
                password?: string | undefined;
                username?: string | undefined;
            };
        } | undefined;
    }>;
    static readonly resultSchema: import("zod").ZodObject<{
        operation: import("zod").ZodEnum<["send_connection"]>;
        success: import("zod").ZodBoolean;
        message: import("zod").ZodOptional<import("zod").ZodString>;
        profile: import("zod").ZodOptional<import("zod").ZodObject<{
            name: import("zod").ZodString;
            headline: import("zod").ZodOptional<import("zod").ZodString>;
            location: import("zod").ZodOptional<import("zod").ZodString>;
            profile_url: import("zod").ZodString;
        }, "strip", import("zod").ZodTypeAny, {
            name: string;
            profile_url: string;
            location?: string | undefined;
            headline?: string | undefined;
        }, {
            name: string;
            profile_url: string;
            location?: string | undefined;
            headline?: string | undefined;
        }>>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "send_connection";
        message?: string | undefined;
        profile?: {
            name: string;
            profile_url: string;
            location?: string | undefined;
            headline?: string | undefined;
        } | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "send_connection";
        message?: string | undefined;
        profile?: {
            name: string;
            profile_url: string;
            location?: string | undefined;
            headline?: string | undefined;
        } | undefined;
    }>;
    static readonly shortDescription = "LinkedIn connection automation with step recording";
    static readonly longDescription = "\n    Recordable LinkedIn Connection Tool for automating connection requests.\n    Records each step with screenshots and timing information for debugging.\n  ";
    static readonly alias = "linkedin-recordable";
    static readonly type = "tool";
    /** JS helper to query elements across main document, iframes, and shadow DOM */
    private static readonly CROSS_DOM_QUERY;
    private sessionId;
    private contextId;
    private cookies;
    constructor(params?: T, context?: BubbleContext);
    /** Required by RecordableToolBubble - returns the active browser session ID */
    protected chooseCredential(): string | undefined;
    private parseBrowserSessionData;
    private stepStartBrowserSession;
    private stepNavigateToProfile;
    private stepWaitForProfilePage;
    private stepExtractProfileInfo;
    private stepClickConnect;
    private stepWaitForModal;
    private stepAddNote;
    private stepSendRequest;
    private stepEndBrowserSession;
    private evaluate;
    private detectIPAddress;
    performAction(): Promise<LinkedInConnectionToolResult>;
}
//# sourceMappingURL=tool.d.ts.map