import { ServiceBubble } from '../../../types/service-bubble-class.js';
import type { BubbleContext } from '../../../types/bubble.js';
import { CredentialType } from '@bubblelab/shared-schemas';
import { type PylonParamsInput, type PylonResult } from './pylon.schema.js';
export declare class PylonBubble<T extends PylonParamsInput = PylonParamsInput> extends ServiceBubble<T, Extract<PylonResult, {
    operation: T['operation'];
}>> {
    static readonly type: "service";
    static readonly service = "pylon";
    static readonly authType: "apikey";
    static readonly bubbleName = "pylon";
    static readonly schema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"create_issue">;
        title: import("zod").ZodString;
        body_html: import("zod").ZodOptional<import("zod").ZodString>;
        assignee_id: import("zod").ZodOptional<import("zod").ZodString>;
        priority: import("zod").ZodOptional<import("zod").ZodEnum<["urgent", "high", "normal", "low"]>>;
        tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
        account_id: import("zod").ZodOptional<import("zod").ZodString>;
        requester_email: 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: "create_issue";
        title: string;
        body_html?: string | undefined;
        assignee_id?: string | undefined;
        priority?: "urgent" | "high" | "normal" | "low" | undefined;
        tags?: string[] | undefined;
        account_id?: string | undefined;
        requester_email?: string | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "create_issue";
        title: string;
        body_html?: string | undefined;
        assignee_id?: string | undefined;
        priority?: "urgent" | "high" | "normal" | "low" | undefined;
        tags?: string[] | undefined;
        account_id?: string | undefined;
        requester_email?: string | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_issues">;
        limit: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        cursor: import("zod").ZodOptional<import("zod").ZodString>;
        state: import("zod").ZodOptional<import("zod").ZodEnum<["open", "closed", "snoozed"]>>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "list_issues";
        limit: number;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        cursor?: string | undefined;
        state?: "open" | "closed" | "snoozed" | undefined;
    }, {
        operation: "list_issues";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        limit?: number | undefined;
        cursor?: string | undefined;
        state?: "open" | "closed" | "snoozed" | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_issue">;
        issue_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_issue";
        issue_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "get_issue";
        issue_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"update_issue">;
        issue_id: import("zod").ZodString;
        title: import("zod").ZodOptional<import("zod").ZodString>;
        state: import("zod").ZodOptional<import("zod").ZodEnum<["open", "closed", "snoozed"]>>;
        priority: import("zod").ZodOptional<import("zod").ZodEnum<["urgent", "high", "normal", "low"]>>;
        assignee_id: import("zod").ZodOptional<import("zod").ZodString>;
        tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
        tags_apply_mode: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<["append_only", "remove_only", "replace"]>>>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "update_issue";
        issue_id: string;
        tags_apply_mode: "replace" | "append_only" | "remove_only";
        title?: string | undefined;
        assignee_id?: string | undefined;
        priority?: "urgent" | "high" | "normal" | "low" | undefined;
        tags?: string[] | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        state?: "open" | "closed" | "snoozed" | undefined;
    }, {
        operation: "update_issue";
        issue_id: string;
        title?: string | undefined;
        assignee_id?: string | undefined;
        priority?: "urgent" | "high" | "normal" | "low" | undefined;
        tags?: string[] | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        state?: "open" | "closed" | "snoozed" | undefined;
        tags_apply_mode?: "replace" | "append_only" | "remove_only" | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"send_message">;
        issue_id: import("zod").ZodString;
        body_html: import("zod").ZodString;
        is_private: 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: "send_message";
        body_html: string;
        issue_id: string;
        is_private: boolean;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "send_message";
        body_html: string;
        issue_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        is_private?: boolean | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_messages">;
        issue_id: import("zod").ZodString;
        limit: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        cursor: 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_messages";
        limit: number;
        issue_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        cursor?: string | undefined;
    }, {
        operation: "list_messages";
        issue_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        limit?: number | undefined;
        cursor?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"create_account">;
        name: import("zod").ZodString;
        owner_id: import("zod").ZodOptional<import("zod").ZodString>;
        tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
        custom_fields: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
            slug: import("zod").ZodString;
            value: import("zod").ZodOptional<import("zod").ZodString>;
            values: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
        }, "strip", import("zod").ZodTypeAny, {
            slug: string;
            value?: string | undefined;
            values?: string[] | undefined;
        }, {
            slug: string;
            value?: string | undefined;
            values?: string[] | undefined;
        }>, "many">>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "create_account";
        name: string;
        tags?: string[] | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        owner_id?: string | undefined;
        custom_fields?: {
            slug: string;
            value?: string | undefined;
            values?: string[] | undefined;
        }[] | undefined;
    }, {
        operation: "create_account";
        name: string;
        tags?: string[] | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        owner_id?: string | undefined;
        custom_fields?: {
            slug: string;
            value?: string | undefined;
            values?: string[] | undefined;
        }[] | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_accounts">;
        limit: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        cursor: 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_accounts";
        limit: number;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        cursor?: string | undefined;
    }, {
        operation: "list_accounts";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        limit?: number | undefined;
        cursor?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"update_account">;
        account_id: import("zod").ZodString;
        name: import("zod").ZodOptional<import("zod").ZodString>;
        owner_id: import("zod").ZodOptional<import("zod").ZodString>;
        tags: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
        tags_apply_mode: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<["append_only", "remove_only", "replace"]>>>;
        custom_fields: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
            slug: import("zod").ZodString;
            value: import("zod").ZodOptional<import("zod").ZodString>;
            values: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
        }, "strip", import("zod").ZodTypeAny, {
            slug: string;
            value?: string | undefined;
            values?: string[] | undefined;
        }, {
            slug: string;
            value?: string | undefined;
            values?: string[] | undefined;
        }>, "many">>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "update_account";
        account_id: string;
        tags_apply_mode: "replace" | "append_only" | "remove_only";
        tags?: string[] | undefined;
        name?: string | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        owner_id?: string | undefined;
        custom_fields?: {
            slug: string;
            value?: string | undefined;
            values?: string[] | undefined;
        }[] | undefined;
    }, {
        operation: "update_account";
        account_id: string;
        tags?: string[] | undefined;
        name?: string | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        tags_apply_mode?: "replace" | "append_only" | "remove_only" | undefined;
        owner_id?: string | undefined;
        custom_fields?: {
            slug: string;
            value?: string | undefined;
            values?: string[] | undefined;
        }[] | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_contacts">;
        limit: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        cursor: 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_contacts";
        limit: number;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        cursor?: string | undefined;
    }, {
        operation: "list_contacts";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        limit?: number | undefined;
        cursor?: string | undefined;
    }>]>;
    static readonly resultSchema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"create_issue">;
        success: import("zod").ZodBoolean;
        issue_id: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "create_issue";
        success: boolean;
        error: string;
        issue_id?: string | undefined;
    }, {
        operation: "create_issue";
        success: boolean;
        error: string;
        issue_id?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_issues">;
        success: import("zod").ZodBoolean;
        issues: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>, "many">>;
        cursor: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "list_issues";
        success: boolean;
        error: string;
        issues?: Record<string, unknown>[] | undefined;
        cursor?: string | undefined;
    }, {
        operation: "list_issues";
        success: boolean;
        error: string;
        issues?: Record<string, unknown>[] | undefined;
        cursor?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_issue">;
        success: import("zod").ZodBoolean;
        issue: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "get_issue";
        success: boolean;
        error: string;
        issue?: Record<string, unknown> | undefined;
    }, {
        operation: "get_issue";
        success: boolean;
        error: string;
        issue?: Record<string, unknown> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"update_issue">;
        success: import("zod").ZodBoolean;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "update_issue";
        success: boolean;
        error: string;
    }, {
        operation: "update_issue";
        success: boolean;
        error: string;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"send_message">;
        success: import("zod").ZodBoolean;
        message_id: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "send_message";
        success: boolean;
        error: string;
        message_id?: string | undefined;
    }, {
        operation: "send_message";
        success: boolean;
        error: string;
        message_id?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_messages">;
        success: import("zod").ZodBoolean;
        messages: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>, "many">>;
        cursor: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "list_messages";
        success: boolean;
        error: string;
        cursor?: string | undefined;
        messages?: Record<string, unknown>[] | undefined;
    }, {
        operation: "list_messages";
        success: boolean;
        error: string;
        cursor?: string | undefined;
        messages?: Record<string, unknown>[] | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"create_account">;
        success: import("zod").ZodBoolean;
        account_id: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "create_account";
        success: boolean;
        error: string;
        account_id?: string | undefined;
    }, {
        operation: "create_account";
        success: boolean;
        error: string;
        account_id?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_accounts">;
        success: import("zod").ZodBoolean;
        accounts: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>, "many">>;
        cursor: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "list_accounts";
        success: boolean;
        error: string;
        cursor?: string | undefined;
        accounts?: Record<string, unknown>[] | undefined;
    }, {
        operation: "list_accounts";
        success: boolean;
        error: string;
        cursor?: string | undefined;
        accounts?: Record<string, unknown>[] | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"update_account">;
        success: import("zod").ZodBoolean;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "update_account";
        success: boolean;
        error: string;
    }, {
        operation: "update_account";
        success: boolean;
        error: string;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_contacts">;
        success: import("zod").ZodBoolean;
        contacts: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>, "many">>;
        cursor: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "list_contacts";
        success: boolean;
        error: string;
        cursor?: string | undefined;
        contacts?: Record<string, unknown>[] | undefined;
    }, {
        operation: "list_contacts";
        success: boolean;
        error: string;
        cursor?: string | undefined;
        contacts?: Record<string, unknown>[] | undefined;
    }>]>;
    static readonly shortDescription = "Pylon B2B support platform for managing issues, messages, accounts, and contacts";
    static readonly longDescription = "\n    Pylon is a B2B customer support platform that tracks customer issues across\n    multiple channels (Slack, Email, Microsoft Teams, Chat Widget).\n\n    Supported operations:\n    - Issues: Create, list, get, and update support issues\n    - Messages: Send replies and list messages on issues\n    - Accounts: Create, list, and update customer accounts\n    - Contacts: List contacts\n\n    Features:\n    - Tagging and custom field support\n    - Priority and state management for issues\n    - Internal notes via private messages\n    - Cursor-based pagination\n  ";
    static readonly alias = "pylon";
    constructor(params?: T, context?: BubbleContext);
    testCredential(): Promise<boolean>;
    protected chooseCredential(): string | undefined;
    private makeApiRequest;
    protected performAction(context?: BubbleContext): Promise<Extract<PylonResult, {
        operation: T['operation'];
    }>>;
    private createIssue;
    private listIssues;
    private getIssue;
    private updateIssue;
    private sendMessage;
    private listMessages;
    private createAccount;
    private listAccounts;
    private updateAccount;
    private listContacts;
}
//# sourceMappingURL=pylon.d.ts.map