import { ServiceBubble } from '../../../types/service-bubble-class.js';
import type { BubbleContext } from '../../../types/bubble.js';
import { CredentialType } from '@bubblelab/shared-schemas';
import { type ZoomParamsInput, type ZoomResult } from './zoom.schema.js';
/**
 * Zoom Service Bubble
 *
 * OAuth-based Zoom integration for managing meetings, retrieving cloud
 * recordings (including AI-Companion summaries and VTT transcripts), and
 * reading user profiles via the Zoom REST API v2.
 */
export declare class ZoomBubble<T extends ZoomParamsInput = ZoomParamsInput> extends ServiceBubble<T, Extract<ZoomResult, {
    operation: T['operation'];
}>> {
    static readonly type: "service";
    static readonly service = "zoom";
    static readonly authType: "oauth";
    static readonly bubbleName = "zoom";
    static readonly schema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"create_meeting">;
        user_id: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodString>>;
        topic: import("zod").ZodString;
        type: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodLiteral<1>, import("zod").ZodLiteral<2>, import("zod").ZodLiteral<3>, import("zod").ZodLiteral<8>]>>>;
        start_time: import("zod").ZodOptional<import("zod").ZodString>;
        duration: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        timezone: import("zod").ZodOptional<import("zod").ZodString>;
        agenda: import("zod").ZodOptional<import("zod").ZodString>;
        password: import("zod").ZodOptional<import("zod").ZodString>;
        settings: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
        recurrence: import("zod").ZodOptional<import("zod").ZodObject<{
            type: import("zod").ZodUnion<[import("zod").ZodLiteral<1>, import("zod").ZodLiteral<2>, import("zod").ZodLiteral<3>]>;
            repeat_interval: import("zod").ZodOptional<import("zod").ZodNumber>;
            weekly_days: import("zod").ZodOptional<import("zod").ZodString>;
            monthly_day: import("zod").ZodOptional<import("zod").ZodNumber>;
            monthly_week: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodLiteral<-1>, import("zod").ZodLiteral<1>, import("zod").ZodLiteral<2>, import("zod").ZodLiteral<3>, import("zod").ZodLiteral<4>]>>;
            monthly_week_day: import("zod").ZodOptional<import("zod").ZodNumber>;
            end_times: import("zod").ZodOptional<import("zod").ZodNumber>;
            end_date_time: import("zod").ZodOptional<import("zod").ZodString>;
        }, "strip", import("zod").ZodTypeAny, {
            type: 1 | 2 | 3;
            repeat_interval?: number | undefined;
            weekly_days?: string | undefined;
            monthly_day?: number | undefined;
            monthly_week?: 1 | 2 | 3 | 4 | -1 | undefined;
            monthly_week_day?: number | undefined;
            end_times?: number | undefined;
            end_date_time?: string | undefined;
        }, {
            type: 1 | 2 | 3;
            repeat_interval?: number | undefined;
            weekly_days?: string | undefined;
            monthly_day?: number | undefined;
            monthly_week?: 1 | 2 | 3 | 4 | -1 | undefined;
            monthly_week_day?: number | undefined;
            end_times?: number | undefined;
            end_date_time?: string | undefined;
        }>>;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        duration: number;
        type: 1 | 2 | 3 | 8;
        operation: "create_meeting";
        topic: string;
        user_id: string;
        password?: string | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        timezone?: string | undefined;
        start_time?: string | undefined;
        agenda?: string | undefined;
        settings?: Record<string, unknown> | undefined;
        recurrence?: {
            type: 1 | 2 | 3;
            repeat_interval?: number | undefined;
            weekly_days?: string | undefined;
            monthly_day?: number | undefined;
            monthly_week?: 1 | 2 | 3 | 4 | -1 | undefined;
            monthly_week_day?: number | undefined;
            end_times?: number | undefined;
            end_date_time?: string | undefined;
        } | undefined;
    }, {
        operation: "create_meeting";
        topic: string;
        duration?: number | undefined;
        type?: 1 | 2 | 3 | 8 | undefined;
        password?: string | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        user_id?: string | undefined;
        timezone?: string | undefined;
        start_time?: string | undefined;
        agenda?: string | undefined;
        settings?: Record<string, unknown> | undefined;
        recurrence?: {
            type: 1 | 2 | 3;
            repeat_interval?: number | undefined;
            weekly_days?: string | undefined;
            monthly_day?: number | undefined;
            monthly_week?: 1 | 2 | 3 | 4 | -1 | undefined;
            monthly_week_day?: number | undefined;
            end_times?: number | undefined;
            end_date_time?: string | undefined;
        } | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_meeting">;
        meeting_id: import("zod").ZodString;
        occurrence_id: 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_meeting";
        meeting_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        occurrence_id?: string | undefined;
    }, {
        operation: "get_meeting";
        meeting_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        occurrence_id?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_meetings">;
        user_id: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodString>>;
        type: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodEnum<["scheduled", "live", "upcoming", "upcoming_meetings", "previous_meetings"]>>>;
        page_size: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        next_page_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, {
        type: "scheduled" | "live" | "upcoming" | "upcoming_meetings" | "previous_meetings";
        operation: "list_meetings";
        user_id: string;
        page_size: number;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        next_page_token?: string | undefined;
    }, {
        operation: "list_meetings";
        type?: "scheduled" | "live" | "upcoming" | "upcoming_meetings" | "previous_meetings" | undefined;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        user_id?: string | undefined;
        next_page_token?: string | undefined;
        page_size?: number | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_past_meeting">;
        meeting_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_past_meeting";
        meeting_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "get_past_meeting";
        meeting_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_past_instances">;
        meeting_id: import("zod").ZodString;
        credentials: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodNativeEnum<typeof CredentialType>, import("zod").ZodString>>;
    }, "strip", import("zod").ZodTypeAny, {
        operation: "list_past_instances";
        meeting_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "list_past_instances";
        meeting_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_user_recordings">;
        user_id: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodString>>;
        from: import("zod").ZodOptional<import("zod").ZodString>;
        to: import("zod").ZodOptional<import("zod").ZodString>;
        page_size: import("zod").ZodDefault<import("zod").ZodOptional<import("zod").ZodNumber>>;
        next_page_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_user_recordings";
        user_id: string;
        page_size: number;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        from?: string | undefined;
        to?: string | undefined;
        next_page_token?: string | undefined;
    }, {
        operation: "list_user_recordings";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        user_id?: string | undefined;
        from?: string | undefined;
        to?: string | undefined;
        next_page_token?: string | undefined;
        page_size?: number | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_recording">;
        meeting_id: import("zod").ZodString;
        include_fields: 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_recording";
        meeting_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        include_fields?: string | undefined;
    }, {
        operation: "get_recording";
        meeting_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        include_fields?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_meeting_transcript">;
        meeting_id: import("zod").ZodString;
        download: 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: "get_meeting_transcript";
        meeting_id: string;
        download: boolean;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "get_meeting_transcript";
        meeting_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        download?: boolean | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_user">;
        user_id: import("zod").ZodDefault<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_user";
        user_id: string;
        credentials?: Partial<Record<CredentialType, string>> | undefined;
    }, {
        operation: "get_user";
        credentials?: Partial<Record<CredentialType, string>> | undefined;
        user_id?: string | undefined;
    }>]>;
    static readonly resultSchema: import("zod").ZodDiscriminatedUnion<"operation", [import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"create_meeting">;
        success: import("zod").ZodBoolean;
        meeting: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "create_meeting";
        meeting?: Record<string, unknown> | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "create_meeting";
        meeting?: Record<string, unknown> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_meeting">;
        success: import("zod").ZodBoolean;
        meeting: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "get_meeting";
        meeting?: Record<string, unknown> | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "get_meeting";
        meeting?: Record<string, unknown> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_meetings">;
        success: import("zod").ZodBoolean;
        meetings: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>, "many">>;
        page_size: import("zod").ZodOptional<import("zod").ZodNumber>;
        total_records: import("zod").ZodOptional<import("zod").ZodNumber>;
        next_page_token: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "list_meetings";
        next_page_token?: string | undefined;
        page_size?: number | undefined;
        meetings?: Record<string, unknown>[] | undefined;
        total_records?: number | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "list_meetings";
        next_page_token?: string | undefined;
        page_size?: number | undefined;
        meetings?: Record<string, unknown>[] | undefined;
        total_records?: number | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_past_meeting">;
        success: import("zod").ZodBoolean;
        meeting: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "get_past_meeting";
        meeting?: Record<string, unknown> | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "get_past_meeting";
        meeting?: Record<string, unknown> | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_past_instances">;
        success: import("zod").ZodBoolean;
        meetings: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>, "many">>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "list_past_instances";
        meetings?: Record<string, unknown>[] | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "list_past_instances";
        meetings?: Record<string, unknown>[] | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"list_user_recordings">;
        success: import("zod").ZodBoolean;
        meetings: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>, "many">>;
        page_size: import("zod").ZodOptional<import("zod").ZodNumber>;
        total_records: import("zod").ZodOptional<import("zod").ZodNumber>;
        next_page_token: import("zod").ZodOptional<import("zod").ZodString>;
        from: import("zod").ZodOptional<import("zod").ZodString>;
        to: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "list_user_recordings";
        from?: string | undefined;
        to?: string | undefined;
        next_page_token?: string | undefined;
        page_size?: number | undefined;
        meetings?: Record<string, unknown>[] | undefined;
        total_records?: number | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "list_user_recordings";
        from?: string | undefined;
        to?: string | undefined;
        next_page_token?: string | undefined;
        page_size?: number | undefined;
        meetings?: Record<string, unknown>[] | undefined;
        total_records?: number | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_recording">;
        success: import("zod").ZodBoolean;
        recording: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
        recording_files: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>, "many">>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "get_recording";
        recording?: Record<string, unknown> | undefined;
        recording_files?: Record<string, unknown>[] | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "get_recording";
        recording?: Record<string, unknown> | undefined;
        recording_files?: Record<string, unknown>[] | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_meeting_transcript">;
        success: import("zod").ZodBoolean;
        transcript_file: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
        transcript_vtt: import("zod").ZodOptional<import("zod").ZodString>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "get_meeting_transcript";
        transcript_file?: Record<string, unknown> | undefined;
        transcript_vtt?: string | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "get_meeting_transcript";
        transcript_file?: Record<string, unknown> | undefined;
        transcript_vtt?: string | undefined;
    }>, import("zod").ZodObject<{
        operation: import("zod").ZodLiteral<"get_user">;
        success: import("zod").ZodBoolean;
        user: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
        error: import("zod").ZodString;
    }, "strip", import("zod").ZodTypeAny, {
        error: string;
        success: boolean;
        operation: "get_user";
        user?: Record<string, unknown> | undefined;
    }, {
        error: string;
        success: boolean;
        operation: "get_user";
        user?: Record<string, unknown> | undefined;
    }>]>;
    static readonly shortDescription = "Zoom integration for meetings, cloud recordings, transcripts, and users";
    static readonly longDescription = "\n    Zoom REST API v2 integration covering the most common meeting and\n    recording workflows.\n\n    Features:\n    - Create, list, and read scheduled and past meetings\n    - List past instances of recurring meetings (needed to fetch their recordings)\n    - List a user's cloud recordings within a date range\n    - Fetch a meeting's recording bundle (audio, video, chat, transcript files)\n    - Fetch a meeting's transcript and optionally download the VTT content\n    - Read a user profile (including the authenticated user via \"me\")\n\n    Security Features:\n    - OAuth 2.0 with automatic refresh-token rotation\n    - User-scoped access (each connection only sees the connected user's data)\n  ";
    static readonly alias = "";
    constructor(params?: T, context?: BubbleContext);
    testCredential(): Promise<boolean>;
    private parseAccessToken;
    protected chooseCredential(): string | undefined;
    private zoomRequest;
    protected performAction(context?: BubbleContext): Promise<Extract<ZoomResult, {
        operation: T['operation'];
    }>>;
    private createMeeting;
    private getMeeting;
    private listMeetings;
    private getPastMeeting;
    private listPastInstances;
    private listUserRecordings;
    private getRecording;
    private getMeetingTranscript;
    private getUser;
}
//# sourceMappingURL=zoom.d.ts.map