import { CredentialType } from '@bubblelab/shared-schemas';
import { ServiceBubble } from '../../../types/service-bubble-class.js';
import type { BubbleContext } from '../../../types/bubble.js';
import { type AshbyParamsInput, type AshbyResult } from './ashby.schema.js';
/**
 * AshbyBubble - Integration with Ashby ATS (Applicant Tracking System)
 *
 * Provides operations for managing candidates in Ashby:
 * - List candidates with filtering
 * - Get candidate details
 * - Create new candidates
 * - Search candidates by email or name
 * - Add tags to candidates
 *
 * @example
 * ```typescript
 * // List all active candidates
 * const result = await new AshbyBubble({
 *   operation: 'list_candidates',
 *   status: 'Active',
 *   limit: 50,
 * }).action();
 *
 * // Get a specific candidate
 * const candidate = await new AshbyBubble({
 *   operation: 'get_candidate',
 *   candidate_id: 'abc123-uuid',
 * }).action();
 *
 * // Create a new candidate (Personal email becomes primary)
 * const newCandidate = await new AshbyBubble({
 *   operation: 'create_candidate',
 *   name: 'John Doe',
 *   emails: [
 *     { email: 'john.work@company.com', type: 'Work' },
 *     { email: 'john.doe@example.com', type: 'Personal' }, // This becomes primary
 *   ],
 * }).action();
 * ```
 */
export declare class AshbyBubble<T extends AshbyParamsInput = AshbyParamsInput> extends ServiceBubble<T, Extract<AshbyResult, {
    operation: T['operation'];
}>> {
    static readonly service = "ashby";
    static readonly authType: "basic";
    static readonly bubbleName: "ashby";
    static readonly type: "service";
    static readonly schema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_candidates">;
        limit: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        cursor: import("zod").ZodOptional<import("zod").ZodString>;
        status: import("zod").ZodOptional<import("zod").ZodEnum<["Hired", "Archived", "Active", "Lead"]>>;
        job_id: import("zod").ZodOptional<import("zod").ZodString>;
        created_after: 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: "list_candidates";
        limit: number;
        status?: "Hired" | "Archived" | "Active" | "Lead" | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        cursor?: string | undefined;
        job_id?: string | undefined;
        created_after?: number | undefined;
    }, {
        operation: "list_candidates";
        status?: "Hired" | "Archived" | "Active" | "Lead" | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        limit?: number | undefined;
        cursor?: string | undefined;
        job_id?: string | undefined;
        created_after?: number | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_candidate">;
        candidate_id: import("zod").ZodString;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "get_candidate";
        candidate_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "get_candidate";
        candidate_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"create_candidate">;
        name: import("zod").ZodString;
        emails: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
            email: import("zod").ZodString;
            type: import("zod").ZodEnum<["Personal", "Work", "Other"]>;
        }, "strip", import("zod").ZodTypeAny, {
            type: "Personal" | "Work" | "Other";
            email: string;
        }, {
            type: "Personal" | "Work" | "Other";
            email: string;
        }>, "many">>;
        phone_number: import("zod").ZodOptional<import("zod").ZodString>;
        linkedin_url: import("zod").ZodOptional<import("zod").ZodString>;
        github_url: import("zod").ZodOptional<import("zod").ZodString>;
        website: import("zod").ZodOptional<import("zod").ZodString>;
        source_id: import("zod").ZodOptional<import("zod").ZodString>;
        credited_to_user_id: import("zod").ZodOptional<import("zod").ZodString>;
        tag: import("zod").ZodOptional<import("zod").ZodString>;
        allow_duplicate_linkedin: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        name: string;
        operation: "create_candidate";
        allow_duplicate_linkedin: boolean;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        website?: string | undefined;
        emails?: {
            type: "Personal" | "Work" | "Other";
            email: string;
        }[] | undefined;
        tag?: string | undefined;
        phone_number?: string | undefined;
        linkedin_url?: string | undefined;
        github_url?: string | undefined;
        source_id?: string | undefined;
        credited_to_user_id?: string | undefined;
    }, {
        name: string;
        operation: "create_candidate";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        website?: string | undefined;
        emails?: {
            type: "Personal" | "Work" | "Other";
            email: string;
        }[] | undefined;
        tag?: string | undefined;
        phone_number?: string | undefined;
        linkedin_url?: string | undefined;
        github_url?: string | undefined;
        source_id?: string | undefined;
        credited_to_user_id?: string | undefined;
        allow_duplicate_linkedin?: boolean | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"search_candidates">;
        email: import("zod").ZodOptional<import("zod").ZodString>;
        name: 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: "search_candidates";
        name?: string | undefined;
        email?: string | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "search_candidates";
        name?: string | undefined;
        email?: string | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"add_tag">;
        candidate_id: import("zod").ZodString;
        tag_id: import("zod").ZodString;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "add_tag";
        candidate_id: string;
        tag_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "add_tag";
        candidate_id: string;
        tag_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_tags">;
        include_archived: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodBoolean>>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "list_tags";
        include_archived: boolean;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "list_tags";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        include_archived?: boolean | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"create_tag">;
        title: import("zod").ZodString;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        title: string;
        operation: "create_tag";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        title: string;
        operation: "create_tag";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_custom_fields">;
        limit: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        cursor: import("zod").ZodOptional<import("zod").ZodString>;
        sync_token: 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: "list_custom_fields";
        limit: number;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        cursor?: string | undefined;
        sync_token?: string | undefined;
    }, {
        operation: "list_custom_fields";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        limit?: number | undefined;
        cursor?: string | undefined;
        sync_token?: string | undefined;
    }>]>;
    static readonly resultSchema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_candidates">;
        success: import("zod").ZodBoolean;
        candidates: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
            id: import("zod").ZodString;
            createdAt: import("zod").ZodOptional<import("zod").ZodString>;
            updatedAt: import("zod").ZodOptional<import("zod").ZodString>;
            name: import("zod").ZodString;
            primaryEmailAddress: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                value: import("zod").ZodString;
                type: import("zod").ZodEnum<["Personal", "Work", "Other"]>;
                isPrimary: import("zod").ZodBoolean;
            }, "strip", import("zod").ZodTypeAny, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }>>>;
            emailAddresses: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                value: import("zod").ZodString;
                type: import("zod").ZodEnum<["Personal", "Work", "Other"]>;
                isPrimary: import("zod").ZodBoolean;
            }, "strip", import("zod").ZodTypeAny, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }>, "many">>;
            primaryPhoneNumber: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                value: import("zod").ZodString;
                type: import("zod").ZodEnum<["Personal", "Work", "Other"]>;
                isPrimary: import("zod").ZodBoolean;
            }, "strip", import("zod").ZodTypeAny, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }>>>;
            phoneNumbers: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                value: import("zod").ZodString;
                type: import("zod").ZodEnum<["Personal", "Work", "Other"]>;
                isPrimary: import("zod").ZodBoolean;
            }, "strip", import("zod").ZodTypeAny, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }>, "many">>;
            socialLinks: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                url: import("zod").ZodString;
                type: import("zod").ZodString;
            }, "strip", import("zod").ZodTypeAny, {
                type: string;
                url: string;
            }, {
                type: string;
                url: string;
            }>, "many">>;
            tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                id: import("zod").ZodString;
                title: import("zod").ZodString;
                isArchived: import("zod").ZodOptional<import("zod").ZodBoolean>;
            }, "strip", import("zod").ZodTypeAny, {
                title: string;
                id: string;
                isArchived?: boolean | undefined;
            }, {
                title: string;
                id: string;
                isArchived?: boolean | undefined;
            }>, "many">>;
            position: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            company: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            school: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodString>>;
            applicationIds: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
            resumeFileHandle: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                id: import("zod").ZodString;
                name: import("zod").ZodString;
                handle: import("zod").ZodString;
            }, "strip", import("zod").ZodTypeAny, {
                name: string;
                id: string;
                handle: string;
            }, {
                name: string;
                id: string;
                handle: string;
            }>>>;
            fileHandles: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                id: import("zod").ZodString;
                name: import("zod").ZodString;
                handle: import("zod").ZodString;
            }, "strip", import("zod").ZodTypeAny, {
                name: string;
                id: string;
                handle: string;
            }, {
                name: string;
                id: string;
                handle: string;
            }>, "many">>;
            customFields: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                id: import("zod").ZodString;
                title: import("zod").ZodString;
                value: import("zod").ZodUnknown;
                isPrivate: import("zod").ZodOptional<import("zod").ZodBoolean>;
            }, "strip", import("zod").ZodTypeAny, {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }, {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }>, "many">>;
        }, "strip", import("zod").ZodTypeAny, {
            name: string;
            id: string;
            tags?: {
                title: string;
                id: string;
                isArchived?: boolean | undefined;
            }[] | undefined;
            position?: string | null | undefined;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
            emailAddresses?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }[] | undefined;
            phoneNumbers?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }[] | undefined;
            socialLinks?: {
                type: string;
                url: string;
            }[] | undefined;
            company?: string | null | undefined;
            school?: string | null | undefined;
            applicationIds?: string[] | undefined;
            resumeFileHandle?: {
                name: string;
                id: string;
                handle: string;
            } | null | undefined;
            fileHandles?: {
                name: string;
                id: string;
                handle: string;
            }[] | undefined;
        }, {
            name: string;
            id: string;
            tags?: {
                title: string;
                id: string;
                isArchived?: boolean | undefined;
            }[] | undefined;
            position?: string | null | undefined;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
            emailAddresses?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }[] | undefined;
            phoneNumbers?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }[] | undefined;
            socialLinks?: {
                type: string;
                url: string;
            }[] | undefined;
            company?: string | null | undefined;
            school?: string | null | undefined;
            applicationIds?: string[] | undefined;
            resumeFileHandle?: {
                name: string;
                id: string;
                handle: string;
            } | null | undefined;
            fileHandles?: {
                name: string;
                id: string;
                handle: string;
            }[] | undefined;
        }>, "many">>;
        next_cursor: import("zod").ZodOptional<import("zod").ZodString>;
        more_data_available: import("zod").ZodOptional<import("zod").ZodBoolean>;
        sync_token: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "list_candidates";
        next_cursor?: string | undefined;
        sync_token?: string | undefined;
        candidates?: {
            name: string;
            id: string;
            tags?: {
                title: string;
                id: string;
                isArchived?: boolean | undefined;
            }[] | undefined;
            position?: string | null | undefined;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
            emailAddresses?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }[] | undefined;
            phoneNumbers?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }[] | undefined;
            socialLinks?: {
                type: string;
                url: string;
            }[] | undefined;
            company?: string | null | undefined;
            school?: string | null | undefined;
            applicationIds?: string[] | undefined;
            resumeFileHandle?: {
                name: string;
                id: string;
                handle: string;
            } | null | undefined;
            fileHandles?: {
                name: string;
                id: string;
                handle: string;
            }[] | undefined;
        }[] | undefined;
        more_data_available?: boolean | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "list_candidates";
        next_cursor?: string | undefined;
        sync_token?: string | undefined;
        candidates?: {
            name: string;
            id: string;
            tags?: {
                title: string;
                id: string;
                isArchived?: boolean | undefined;
            }[] | undefined;
            position?: string | null | undefined;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
            emailAddresses?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }[] | undefined;
            phoneNumbers?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }[] | undefined;
            socialLinks?: {
                type: string;
                url: string;
            }[] | undefined;
            company?: string | null | undefined;
            school?: string | null | undefined;
            applicationIds?: string[] | undefined;
            resumeFileHandle?: {
                name: string;
                id: string;
                handle: string;
            } | null | undefined;
            fileHandles?: {
                name: string;
                id: string;
                handle: string;
            }[] | undefined;
        }[] | undefined;
        more_data_available?: boolean | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_candidate">;
        success: import("zod").ZodBoolean;
        candidate: import("zod").ZodOptional<import("zod").ZodObject<{
            id: import("zod").ZodString;
            createdAt: import("zod").ZodOptional<import("zod").ZodString>;
            updatedAt: import("zod").ZodOptional<import("zod").ZodString>;
            name: import("zod").ZodString;
            primaryEmailAddress: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                value: import("zod").ZodString;
                type: import("zod").ZodEnum<["Personal", "Work", "Other"]>;
                isPrimary: import("zod").ZodBoolean;
            }, "strip", import("zod").ZodTypeAny, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }>>>;
            primaryPhoneNumber: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                value: import("zod").ZodString;
                type: import("zod").ZodEnum<["Personal", "Work", "Other"]>;
                isPrimary: import("zod").ZodBoolean;
            }, "strip", import("zod").ZodTypeAny, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }>>>;
            customFields: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                id: import("zod").ZodString;
                title: import("zod").ZodString;
                value: import("zod").ZodUnknown;
                isPrivate: import("zod").ZodOptional<import("zod").ZodBoolean>;
            }, "strip", import("zod").ZodTypeAny, {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }, {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }>, "many">>;
        }, "strip", import("zod").ZodTypeAny, {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        }, {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        }>>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "get_candidate";
        candidate?: {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        } | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "get_candidate";
        candidate?: {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        } | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"create_candidate">;
        success: import("zod").ZodBoolean;
        candidate: import("zod").ZodOptional<import("zod").ZodObject<{
            id: import("zod").ZodString;
            createdAt: import("zod").ZodOptional<import("zod").ZodString>;
            updatedAt: import("zod").ZodOptional<import("zod").ZodString>;
            name: import("zod").ZodString;
            primaryEmailAddress: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                value: import("zod").ZodString;
                type: import("zod").ZodEnum<["Personal", "Work", "Other"]>;
                isPrimary: import("zod").ZodBoolean;
            }, "strip", import("zod").ZodTypeAny, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }>>>;
            primaryPhoneNumber: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                value: import("zod").ZodString;
                type: import("zod").ZodEnum<["Personal", "Work", "Other"]>;
                isPrimary: import("zod").ZodBoolean;
            }, "strip", import("zod").ZodTypeAny, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }>>>;
            customFields: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                id: import("zod").ZodString;
                title: import("zod").ZodString;
                value: import("zod").ZodUnknown;
                isPrivate: import("zod").ZodOptional<import("zod").ZodBoolean>;
            }, "strip", import("zod").ZodTypeAny, {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }, {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }>, "many">>;
        }, "strip", import("zod").ZodTypeAny, {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        }, {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        }>>;
        duplicate: import("zod").ZodOptional<import("zod").ZodBoolean>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "create_candidate";
        candidate?: {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        } | undefined;
        duplicate?: boolean | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "create_candidate";
        candidate?: {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        } | undefined;
        duplicate?: boolean | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"search_candidates">;
        success: import("zod").ZodBoolean;
        candidates: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
            id: import("zod").ZodString;
            createdAt: import("zod").ZodOptional<import("zod").ZodString>;
            updatedAt: import("zod").ZodOptional<import("zod").ZodString>;
            name: import("zod").ZodString;
            primaryEmailAddress: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                value: import("zod").ZodString;
                type: import("zod").ZodEnum<["Personal", "Work", "Other"]>;
                isPrimary: import("zod").ZodBoolean;
            }, "strip", import("zod").ZodTypeAny, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }>>>;
            primaryPhoneNumber: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                value: import("zod").ZodString;
                type: import("zod").ZodEnum<["Personal", "Work", "Other"]>;
                isPrimary: import("zod").ZodBoolean;
            }, "strip", import("zod").ZodTypeAny, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }>>>;
            customFields: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                id: import("zod").ZodString;
                title: import("zod").ZodString;
                value: import("zod").ZodUnknown;
                isPrivate: import("zod").ZodOptional<import("zod").ZodBoolean>;
            }, "strip", import("zod").ZodTypeAny, {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }, {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }>, "many">>;
        }, "strip", import("zod").ZodTypeAny, {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        }, {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        }>, "many">>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "search_candidates";
        candidates?: {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        }[] | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "search_candidates";
        candidates?: {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        }[] | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"add_tag">;
        success: import("zod").ZodBoolean;
        candidate: import("zod").ZodOptional<import("zod").ZodObject<{
            id: import("zod").ZodString;
            createdAt: import("zod").ZodOptional<import("zod").ZodString>;
            updatedAt: import("zod").ZodOptional<import("zod").ZodString>;
            name: import("zod").ZodString;
            primaryEmailAddress: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                value: import("zod").ZodString;
                type: import("zod").ZodEnum<["Personal", "Work", "Other"]>;
                isPrimary: import("zod").ZodBoolean;
            }, "strip", import("zod").ZodTypeAny, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }>>>;
            primaryPhoneNumber: import("zod").ZodNullable<import("zod").ZodOptional<import("zod").ZodObject<{
                value: import("zod").ZodString;
                type: import("zod").ZodEnum<["Personal", "Work", "Other"]>;
                isPrimary: import("zod").ZodBoolean;
            }, "strip", import("zod").ZodTypeAny, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }, {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            }>>>;
            customFields: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                id: import("zod").ZodString;
                title: import("zod").ZodString;
                value: import("zod").ZodUnknown;
                isPrivate: import("zod").ZodOptional<import("zod").ZodBoolean>;
            }, "strip", import("zod").ZodTypeAny, {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }, {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }>, "many">>;
        }, "strip", import("zod").ZodTypeAny, {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        }, {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        }>>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "add_tag";
        candidate?: {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        } | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "add_tag";
        candidate?: {
            name: string;
            id: string;
            createdAt?: string | undefined;
            updatedAt?: string | undefined;
            primaryEmailAddress?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            primaryPhoneNumber?: {
                value: string;
                type: "Personal" | "Work" | "Other";
                isPrimary: boolean;
            } | null | undefined;
            customFields?: {
                title: string;
                id: string;
                value?: unknown;
                isPrivate?: boolean | undefined;
            }[] | undefined;
        } | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_tags">;
        success: import("zod").ZodBoolean;
        tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
            id: import("zod").ZodString;
            title: import("zod").ZodString;
            isArchived: import("zod").ZodOptional<import("zod").ZodBoolean>;
        }, "strip", import("zod").ZodTypeAny, {
            title: string;
            id: string;
            isArchived?: boolean | undefined;
        }, {
            title: string;
            id: string;
            isArchived?: boolean | undefined;
        }>, "many">>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "list_tags";
        tags?: {
            title: string;
            id: string;
            isArchived?: boolean | undefined;
        }[] | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "list_tags";
        tags?: {
            title: string;
            id: string;
            isArchived?: boolean | undefined;
        }[] | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"create_tag">;
        success: import("zod").ZodBoolean;
        tag: import("zod").ZodOptional<import("zod").ZodObject<{
            id: import("zod").ZodString;
            title: import("zod").ZodString;
            isArchived: import("zod").ZodOptional<import("zod").ZodBoolean>;
        }, "strip", import("zod").ZodTypeAny, {
            title: string;
            id: string;
            isArchived?: boolean | undefined;
        }, {
            title: string;
            id: string;
            isArchived?: boolean | undefined;
        }>>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "create_tag";
        tag?: {
            title: string;
            id: string;
            isArchived?: boolean | undefined;
        } | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "create_tag";
        tag?: {
            title: string;
            id: string;
            isArchived?: boolean | undefined;
        } | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_custom_fields">;
        success: import("zod").ZodBoolean;
        custom_fields: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
            id: import("zod").ZodString;
            isPrivate: import("zod").ZodBoolean;
            title: import("zod").ZodString;
            objectType: import("zod").ZodString;
            isArchived: import("zod").ZodBoolean;
            fieldType: import("zod").ZodString;
            selectableValues: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
                label: import("zod").ZodString;
                value: import("zod").ZodString;
                isArchived: import("zod").ZodBoolean;
            }, "strip", import("zod").ZodTypeAny, {
                value: string;
                label: string;
                isArchived: boolean;
            }, {
                value: string;
                label: string;
                isArchived: boolean;
            }>, "many">>;
        }, "strip", import("zod").ZodTypeAny, {
            title: string;
            id: string;
            fieldType: string;
            isPrivate: boolean;
            isArchived: boolean;
            objectType: string;
            selectableValues?: {
                value: string;
                label: string;
                isArchived: boolean;
            }[] | undefined;
        }, {
            title: string;
            id: string;
            fieldType: string;
            isPrivate: boolean;
            isArchived: boolean;
            objectType: string;
            selectableValues?: {
                value: string;
                label: string;
                isArchived: boolean;
            }[] | undefined;
        }>, "many">>;
        next_cursor: import("zod").ZodOptional<import("zod").ZodString>;
        more_data_available: import("zod").ZodOptional<import("zod").ZodBoolean>;
        sync_token: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "list_custom_fields";
        next_cursor?: string | undefined;
        custom_fields?: {
            title: string;
            id: string;
            fieldType: string;
            isPrivate: boolean;
            isArchived: boolean;
            objectType: string;
            selectableValues?: {
                value: string;
                label: string;
                isArchived: boolean;
            }[] | undefined;
        }[] | undefined;
        sync_token?: string | undefined;
        more_data_available?: boolean | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "list_custom_fields";
        next_cursor?: string | undefined;
        custom_fields?: {
            title: string;
            id: string;
            fieldType: string;
            isPrivate: boolean;
            isArchived: boolean;
            objectType: string;
            selectableValues?: {
                value: string;
                label: string;
                isArchived: boolean;
            }[] | undefined;
        }[] | undefined;
        sync_token?: string | undefined;
        more_data_available?: boolean | undefined;
    }>]>;
    static readonly shortDescription = "Ashby ATS integration for candidate management";
    static readonly longDescription = "\n    Ashby is an applicant tracking system (ATS) for modern recruiting teams.\n    This bubble provides operations for:\n    - Listing and filtering candidates\n    - Retrieving candidate details\n    - Creating new candidates\n    - Searching candidates by email or name\n    - Managing candidate tags (list, create, add to candidates)\n    - Listing custom field definitions\n\n    Security Features:\n    - Uses HTTP Basic Authentication with API key\n    - API key is stored encrypted and never exposed in logs\n\n    Use Cases:\n    - Sync candidates from external sources\n    - Automate candidate tagging workflows\n    - Build custom recruiting dashboards\n    - Integrate recruiting data with other systems\n    - Retrieve custom field metadata for building dynamic forms\n  ";
    static readonly alias = "ashby-ats";
    constructor(params?: T, context?: BubbleContext);
    /**
     * Choose the appropriate credential for Ashby API
     */
    protected chooseCredential(): string | undefined;
    /**
     * Test if the credential is valid by making a simple API call
     */
    testCredential(): Promise<boolean>;
    /**
     * Perform the Ashby operation
     */
    protected performAction(context?: BubbleContext): Promise<Extract<AshbyResult, {
        operation: T['operation'];
    }>>;
    /**
     * Extract error message from Ashby API error response
     */
    private extractErrorMessage;
    /**
     * Make an authenticated request to the Ashby API
     */
    private makeAshbyRequest;
    /**
     * List candidates with optional filtering
     */
    private listCandidates;
    /**
     * Get detailed information about a specific candidate
     */
    private getCandidate;
    /**
     * Normalize LinkedIn URL for comparison
     * Removes protocol, www, trailing slashes, and query params
     */
    private normalizeLinkedInUrl;
    /**
     * Extract a searchable name from LinkedIn URL
     * e.g., "https://linkedin.com/in/john-doe" -> "john doe"
     */
    private extractNameFromLinkedInUrl;
    /**
     * Find existing candidates with the same LinkedIn URL
     * Uses search by name extracted from LinkedIn URL for faster lookup
     */
    private findCandidateByLinkedIn;
    /**
     * Create a new candidate
     */
    private createCandidate;
    /**
     * Search for candidates by email or name
     */
    private searchCandidates;
    /**
     * Add a tag to a candidate
     */
    private addTag;
    /**
     * List all candidate tags
     */
    private listTags;
    /**
     * Create a new candidate tag
     */
    private createTag;
    /**
     * List all custom field definitions
     */
    private listCustomFields;
}
//# sourceMappingURL=ashby.d.ts.map