import { ClientSDK, RequestOptions } from "../lib/sdks.js";
import { PageIterator } from "../sdk/types/operations.js";
import * as operations from "./models/operations/index.js";
import * as shared from "./models/shared/index.js";
import { WebhookRequiredHeaders, WebhookUnbrandedRequiredHeaders } from "svix";
import { GetAuthorizationUrlRequest } from "../funcs/getAuthorizationUrl.js";
import { TokenStore } from "../funcs/withAuthorization.js";
export declare class Fathom extends ClientSDK {
    static newTokenStore(): TokenStore;
    static getAuthorizationUrl(request: GetAuthorizationUrlRequest): string;
    static withAuthorization({ clientId, clientSecret, code, redirectUri, tokenStore }: {
        clientId: string;
        clientSecret: string;
        code: string;
        redirectUri: string;
        tokenStore: TokenStore;
    }): () => Promise<shared.Security>;
    static verifyWebhook(webhookSecret: string, headers: WebhookRequiredHeaders | WebhookUnbrandedRequiredHeaders | Record<string, string>, payload: string | Buffer): unknown;
    /**
     * List meetings
     */
    listMeetings(request?: operations.ListMeetingsRequest | undefined, options?: RequestOptions): Promise<PageIterator<operations.ListMeetingsResponse | undefined, {
        cursor: string;
    }>>;
    /**
     * Get summary
     *
     * @remarks
     * This endpoint has two behaviors depending on your request payload:
     * - If you send `destination_url`, the endpoint will behave in an asynchronous manner.
     * - If you do not send `destination_url`, the endpoint will return the data directly.
     */
    getRecordingSummary(request: operations.GetRecordingSummaryRequest, options?: RequestOptions): Promise<operations.GetRecordingSummaryResponse | undefined>;
    /**
     * Get transcript
     *
     * @remarks
     * This endpoint has two behaviors depending on your request payload:
     * - If you send `destination_url`, the endpoint will behave in an asynchronous manner.
     * - If you do not send `destination_url`, the endpoint will return the data directly.
     */
    getRecordingTranscript(request: operations.GetRecordingTranscriptRequest, options?: RequestOptions): Promise<operations.GetRecordingTranscriptResponse | undefined>;
    /**
     * List teams
     */
    listTeams(request?: operations.ListTeamsRequest | undefined, options?: RequestOptions): Promise<PageIterator<operations.ListTeamsResponse | undefined, {
        cursor: string;
    }>>;
    /**
     * List team members
     */
    listTeamMembers(request?: operations.ListTeamMembersRequest | undefined, options?: RequestOptions): Promise<PageIterator<operations.ListTeamMembersResponse | undefined, {
        cursor: string;
    }>>;
    /**
     * Create a webhook
     *
     * @remarks
     * Create a webhook to receive new meeting content.
     * At least one of `include_transcript`, `include_crm_matches`, `include_summary`, or `include_action_items` must be true.
     */
    createWebhook(request: operations.CreateWebhookRequest, options?: RequestOptions): Promise<shared.Webhook | undefined>;
    /**
     * Delete a webhook
     *
     * @remarks
     * Delete a webhook.
     */
    deleteWebhook(request: operations.DeleteWebhookRequest, options?: RequestOptions): Promise<void>;
}
//# sourceMappingURL=sdk.d.ts.map