import { AxiosResponse } from 'axios'; import { LambdaFunctionURLResult, LambdaFunctionURLHandler } from 'aws-lambda'; import { Server } from 'node:http'; import { ServerOptions } from 'node:https'; declare enum LogLevel { ERROR = "error", WARN = "warn", INFO = "info", DEBUG = "debug" } interface Logger { /** * Output debug message * @param msg any data to be logged */ debug(...msg: unknown[]): void; /** * Output info message * @param msg any data to be logged */ info(...msg: unknown[]): void; /** * Output warn message * @param msg any data to be logged */ warn(...msg: unknown[]): void; /** * Output error message * @param msg any data to be logged */ error(...msg: unknown[]): void; /** * Disables all logging below the given level * @param level as a string, 'error' | 'warn' | 'info' | 'debug' */ setLevel(level: LogLevel): void; /** * Return the current LogLevel. */ getLevel(): LogLevel; /** * Name the instance so that it can be filtered when many loggers are sending output * to the same destination. * @param name as a string */ setName(name: string): void; } declare class ConsoleLogger implements Logger { private level; private name; private static labels; private static severity; constructor(); getLevel(): LogLevel; setLevel(level: LogLevel): void; setName(name: string): void; debug(...msg: unknown[]): void; info(...msg: unknown[]): void; warn(...msg: unknown[]): void; error(...msg: unknown[]): void; private static isMoreOrEqualSevere; } type AllPropsOptional = Exclude<{ [P in keyof T]: undefined extends T[P] ? True : False; }[keyof T], undefined> extends True ? True : False; type Constructor = new (...args: any[]) => T; type MaybeArray = T | T[]; type MaybePromise = T | Promise; type StringIndexed = Record; interface TokenStore { getLatestToken(): MaybePromise; storeToken(token: Token): MaybePromise; } interface AuthOptions { clientId: string; clientSecret: string; tokenStore?: TokenStore | undefined; logger?: Logger; } type OAuthGrantType = "authorization_code" | "client_credentials" | "refresh_token" | "account_credentials"; interface BaseOAuthRequest { grant_type: OAuthGrantType; } interface OAuthAuthorizationCodeRequest extends BaseOAuthRequest { code: string; grant_type: "authorization_code"; redirect_uri?: string; } interface OAuthRefreshTokenRequest extends BaseOAuthRequest { grant_type: "refresh_token"; refresh_token: string; } interface S2SAuthTokenRequest extends BaseOAuthRequest { grant_type: "account_credentials"; account_id: string; } type OAuthRequest = OAuthAuthorizationCodeRequest | OAuthRefreshTokenRequest | S2SAuthTokenRequest; /** * {@link Auth} is the base implementation of authentication for Zoom's APIs. * * It only requires a `clientId` and `tokenStore`, as these options are shared across * all authentication implementations, namely OAuth and server-to-server auth (client * credentials, JWT, and server-to-server OAuth.) */ declare abstract class Auth { protected readonly clientId: string; protected readonly clientSecret: string; protected readonly tokenStore: TokenStore; protected readonly logger: Logger | undefined; constructor({ clientId, clientSecret, tokenStore, logger }: AuthOptions); protected getBasicAuthorization(): string; abstract getToken(): MaybePromise; protected isAlmostExpired(isoTime: string): boolean; protected makeOAuthTokenRequest(grantType: T, payload?: Omit, "grant_type">): Promise; } interface ClientCredentialsToken { accessToken: string; expirationTimeIso: string; scopes: string[]; } interface JwtToken { token: string; expirationTimeIso: string; } interface S2SAuthToken { accessToken: string; expirationTimeIso: string; scopes: string[]; } interface S2SAuthOptions { accountId: string; } declare class S2SAuth extends Auth { private accountId; constructor({ accountId, ...restOptions }: AuthOptions & S2SAuthOptions); private assertRawToken; private fetchAccessToken; getToken(): Promise; private mapAccessToken; } interface Event { event: Type; } type EventKeys = T extends Event ? U : never; type EventPayload = Extract; type EventListenerFn, ReturnType = MaybePromise> = (payload: EventPayload) => ReturnType; type EventListenerPredicateFn> = EventListenerFn>; type ContextListener, Context> = (_: EventPayload & Context) => MaybePromise; type GenericEventManager = EventManager; declare class EventManager { protected endpoints: Endpoints; constructor(endpoints: Endpoints); private appendListener; filteredEvent>(eventName: EventName, predicate: EventListenerPredicateFn, listener: EventListenerFn): void; emit>(eventName: EventName, payload: EventPayload): Promise; event>(eventName: EventName, listener: EventListenerFn): void; protected withContext, Context>(): ContextListener; } declare enum StatusCode { OK = 200, TEMPORARY_REDIRECT = 302, BAD_REQUEST = 400, NOT_FOUND = 404, METHOD_NOT_ALLOWED = 405, INTERNAL_SERVER_ERROR = 500 } interface ReceiverInitOptions { eventEmitter?: GenericEventManager | undefined; interactiveAuth?: InteractiveAuth | undefined; } interface Receiver { canInstall(): true | false; init(options: ReceiverInitOptions): void; start(...args: any[]): MaybePromise; stop(...args: any[]): MaybePromise; } interface HttpReceiverOptions extends Partial { endpoints?: MaybeArray | undefined; logger?: Logger | undefined; logLevel?: LogLevel | undefined; port?: number | string | undefined; webhooksSecretToken?: string | undefined; } type SecureServerOptions = { [K in (typeof secureServerOptionKeys)[number]]: ServerOptions[K]; }; declare const secureServerOptionKeys: (keyof ServerOptions)[]; declare class HttpReceiver implements Receiver { private eventEmitter?; private interactiveAuth?; private server?; private logger; constructor(options: HttpReceiverOptions); canInstall(): true; private buildDeletedStateCookieHeader; private buildStateCookieHeader; private getRequestCookie; private getServerCreator; private hasEndpoint; private hasSecureOptions; init({ eventEmitter, interactiveAuth }: ReceiverInitOptions): void; private setResponseCookie; private areNormalizedUrlsEqual; start(port?: number | string): Promise; stop(): Promise; private writeTemporaryRedirect; private writeResponse; } interface BaseResponse { data?: Data | undefined; statusCode: number; trackingId?: string | undefined; } interface BuildEndpointOptions { method: HttpMethod; baseUrlOverride?: string | undefined; urlPathBuilder: (params: PathSchema) => string; requestMimeType?: RequestMimeType; } interface WebEndpointOptions { auth: Auth; baseUrl?: string | undefined; doubleEncodeUrl?: boolean | undefined; timeout?: number | undefined; userAgentName?: string | undefined; } type EndpointArguments = (PathSchema extends NoParams ? object : AllPropsOptional extends "t" ? { path?: PathSchema; } : { path: PathSchema; }) & (BodySchema extends NoParams ? object : AllPropsOptional extends "t" ? { body?: BodySchema; } : { body: BodySchema; }) & (QuerySchema extends NoParams ? object : AllPropsOptional extends "t" ? { query?: QuerySchema; } : { query: QuerySchema; }); type HttpMethod = "GET" | "POST" | "PUT" | "PATCH" | "DELETE"; type NoParams = "_NO_PARAMS_"; type RequestMimeType = "application/json" | "multipart/form-data"; declare class WebEndpoints { constructor(options: WebEndpointOptions); protected buildEndpoint({ method, baseUrlOverride, urlPathBuilder, requestMimeType }: BuildEndpointOptions): (_: EndpointArguments) => Promise>; private buildUserAgent; private getCustomUserAgentName; private getHeaders; private getRequestBody; private isOk; private isZoomResponseError; private makeRequest; } type CommonClientOptions = GetAuthOptions & ExtractInstallerOptions & Pick & { disableReceiver?: boolean | undefined; logger?: Logger | undefined; logLevel?: LogLevel | undefined; }; interface ClientReceiverOptions { receiver: R; } type ClientConstructorOptions, R extends Receiver> = (O & { disableReceiver: true; }) | (O & (ClientReceiverOptions | HttpReceiverOptions)); type ExtractInstallerOptions = A extends InteractiveAuth ? [ ReturnType ] extends [true] ? WideInstallerOptions : object : object; type ExtractAuthTokenType = A extends Auth ? T : never; type GetAuthOptions = AuthOptions> & (A extends S2SAuth ? S2SAuthOptions : object); type WideInstallerOptions = { installerOptions: InstallerOptions; }; declare abstract class ProductClient, ReceiverType extends Receiver> { private readonly auth; readonly endpoints: EndpointsType; readonly webEventConsumer?: EventProcessorType | undefined; private readonly receiver?; constructor(options: ClientConstructorOptions); protected abstract initAuth(options: OptionsType): AuthType; protected abstract initEndpoints(auth: AuthType, options: OptionsType): EndpointsType; protected abstract initEventProcessor(endpoints: EndpointsType, options: OptionsType): EventProcessorType | undefined; private initDefaultReceiver; start(): Promise>; } /** * {@link StateStore} defines methods for generating and verifying OAuth state. * * This interface is implemented internally for the default state store; however, * it can also be implemented and passed to an OAuth client as well. */ interface StateStore { /** * Generate a new state string, which is directly appended to the OAuth `state` parameter. */ generateState(): MaybePromise; /** * Verify that the state received during OAuth callback is valid and not forged. * * If state verification fails, {@link OAuthStateVerificationFailedError} should be thrown. * * @param state The state parameter that was received during OAuth callback */ verifyState(state: string): MaybePromise; } /** * Guard if an object implements the {@link StateStore} interface — most notably, * `generateState()` and `verifyState(state: string)`. */ declare const isStateStore: (obj: unknown) => obj is StateStore; interface AuthorizationUrlResult { fullUrl: string; generatedState: string; } interface InstallerOptions { directInstall?: boolean | undefined; installPath?: string | undefined; redirectUri: string; redirectUriPath?: string | undefined; stateStore: StateStore | string; stateCookieName?: string | undefined; stateCookieMaxAge?: number | undefined; } /** * {@link InteractiveAuth}, an extension of {@link Auth}, is designed for use cases where authentication * is initiated server-side, but requires manual authorization from a user, by redirecting the user to Zoom. * * In addition to all required fields from {@link AuthOptions}, this class requires a `redirectUri`, as this * value is appended to the authorization URL when the user is redirected to Zoom and subsequently redirected * back to an endpoint on this server. * * @see {@link https://developers.zoom.us/docs/integrations/oauth/ | OAuth - Zoom Developers} */ declare abstract class InteractiveAuth extends Auth { installerOptions?: ReturnType; getAuthorizationUrl(): Promise; getFullRedirectUri(): string; setInstallerOptions({ directInstall, installPath, redirectUri, redirectUriPath, stateStore, stateCookieName, stateCookieMaxAge }: InstallerOptions): { directInstall: boolean; installPath: string; redirectUri: string; redirectUriPath: string; stateStore: StateStore; stateCookieName: string; stateCookieMaxAge: number; }; } /** * Credentials for access token & refresh token, which are used to access Zoom's APIs. * * As access token is short-lived (usually a single hour), its expiration time is checked * first. If it's possible to use the access token, it's used; however, if it has expired * or is close to expiring, the refresh token should be used to generate a new access token * before the API call is made. Refresh tokens are generally valid for 90 days. * * If neither the access token nor the refresh token is available, {@link OAuthTokenRefreshFailedError} * shall be thrown, informing the developer that neither value can be used, and the user must re-authorize. * It's likely that this error will be rare, but it _can_ be thrown. */ interface OAuthToken { accessToken: string; expirationTimeIso: string; refreshToken: string; scopes: string[]; } declare class OAuth extends InteractiveAuth { private assertResponseAccessToken; private fetchAccessToken; getToken(): Promise; initRedirectCode(code: string): Promise; private mapOAuthToken; private refreshAccessToken; } interface RivetError extends Error { readonly errorCode: ErrorCode; } declare const isCoreError: (obj: unknown, key?: K | undefined) => obj is RivetError<{ readonly ApiResponseError: "zoom_rivet_api_response_error"; readonly AwsReceiverRequestError: "zoom_rivet_aws_receiver_request_error"; readonly ClientCredentialsRawResponseError: "zoom_rivet_client_credentials_raw_response_error"; readonly S2SRawResponseError: "zoom_rivet_s2s_raw_response_error"; readonly CommonHttpRequestError: "zoom_rivet_common_http_request_error"; readonly ReceiverInconsistentStateError: "zoom_rivet_receiver_inconsistent_state_error"; readonly ReceiverOAuthFlowError: "zoom_rivet_receiver_oauth_flow_error"; readonly HTTPReceiverConstructionError: "zoom_rivet_http_receiver_construction_error"; readonly HTTPReceiverPortNotNumberError: "zoom_rivet_http_receiver_port_not_number_error"; readonly HTTPReceiverRequestError: "zoom_rivet_http_receiver_request_error"; readonly OAuthInstallerNotInitializedError: "zoom_rivet_oauth_installer_not_initialized_error"; readonly OAuthTokenDoesNotExistError: "zoom_rivet_oauth_does_not_exist_error"; readonly OAuthTokenFetchFailedError: "zoom_rivet_oauth_token_fetch_failed_error"; readonly OAuthTokenRawResponseError: "zoom_rivet_oauth_token_raw_response_error"; readonly OAuthTokenRefreshFailedError: "zoom_rivet_oauth_token_refresh_failed_error"; readonly OAuthStateVerificationFailedError: "zoom_rivet_oauth_state_verification_failed_error"; readonly ProductClientConstructionError: "zoom_rivet_product_client_construction_error"; }[K]>; declare const ApiResponseError: Constructor; declare const AwsReceiverRequestError: Constructor; declare const ClientCredentialsRawResponseError: Constructor; declare const S2SRawResponseError: Constructor; declare const CommonHttpRequestError: Constructor; declare const ReceiverInconsistentStateError: Constructor; declare const ReceiverOAuthFlowError: Constructor; declare const HTTPReceiverConstructionError: Constructor; declare const HTTPReceiverPortNotNumberError: Constructor; declare const HTTPReceiverRequestError: Constructor; declare const OAuthInstallerNotInitializedError: Constructor; declare const OAuthTokenDoesNotExistError: Constructor; declare const OAuthTokenFetchFailedError: Constructor; declare const OAuthTokenRawResponseError: Constructor; declare const OAuthTokenRefreshFailedError: Constructor; declare const OAuthStateVerificationFailedError: Constructor; declare const ProductClientConstructionError: Constructor; interface AwsLambdaReceiverOptions { webhooksSecretToken: string; } declare class AwsLambdaReceiver implements Receiver { private eventEmitter?; private readonly webhooksSecretToken; constructor({ webhooksSecretToken }: AwsLambdaReceiverOptions); buildResponse(statusCode: StatusCode, body: object): LambdaFunctionURLResult; canInstall(): false; init({ eventEmitter }: ReceiverInitOptions): void; start(): LambdaFunctionURLHandler; stop(): Promise; } type AppSendAppNotificationsRequestBody = { notification_id?: string; message?: { text?: string; }; user_id?: string; }; type AppGetUserOrAccountEventSubscriptionQueryParams = { page_size?: number; next_page_token?: string; user_id: string; subscription_scope?: "user" | "account" | "master_account"; account_id: string; }; type AppGetUserOrAccountEventSubscriptionResponse = { next_page_token?: string; page_size?: number; } & { event_subscriptions?: { event_subscription_id?: string; events?: string[]; event_subscription_name?: string; event_webhook_url?: string; subscription_scope?: "user" | "account" | "master_account"; created_source?: "default" | "openapi"; subscriber_id?: string; }[]; }; type AppCreateEventSubscriptionRequestBody = { events: string[]; event_subscription_name?: string; event_webhook_url: string; user_ids?: string[]; subscription_scope: "user" | "account" | "master_account"; account_id?: string; }; type AppCreateEventSubscriptionResponse = { event_subscription_id?: string; }; type AppUnsubscribeAppEventSubscriptionQueryParams = { event_subscription_id: string; user_ids?: string; account_id: string; }; type AppDeleteEventSubscriptionPathParams = { eventSubscriptionId: string; }; type AppSubscribeEventSubscriptionPathParams = { eventSubscriptionId: string; }; type AppSubscribeEventSubscriptionRequestBody = { user_ids?: string[]; account_id: string; }; type AppListAppsQueryParams = { page_size?: number; next_page_token?: string; type?: "active_requests" | "past_requests" | "public" | "account_created" | "approved_apps" | "restricted_apps" | "account_added"; }; type AppListAppsResponse = { next_page_token?: string; page_size?: number; } & { apps?: { app_id?: string; app_name?: string; app_type?: "ZoomApp" | "ChatBotApp" | "OAuthApp" | "GeneralApp"; app_usage?: 1 | 2; app_status?: "PUBLISHED" | "UNPUBLISHED" | "SHARABLE"; request_id?: string; request_total_number?: number; request_pending_number?: number; request_approved_number?: number; request_declined_number?: number; latest_request_date_time?: string; reviewer_name?: string; review_date_time?: string; app_developer_type?: "THIRD_PARTY" | "ZOOM" | "INTERNAL"; app_description?: string; app_icon?: string; scopes?: { scope_name?: string; scope_description?: string; }[]; app_privacy_policy_url?: string; app_directory_url?: string; app_help_url?: string; restricted_time?: string; approval_info?: { approved_type?: "forAllUser" | "forSpecificUser"; approver_id?: string; approved_time?: string; app_approval_closed?: boolean; }; }[]; }; type AppCreateAppsRequestBody = { app_type: "s2s_oauth" | "meeting_sdk" | "general"; app_name: string; scopes?: string[]; contact_name: string; contact_email: string; company_name: string; active?: boolean; publish?: boolean; manifest?: object; }; type AppCreateAppsResponse = { created_at?: string; app_id?: string; app_name?: string; app_type?: "s2s_oauth" | "meeting_sdk"; scopes?: string[]; production_credentials?: { client_id?: string; client_secret?: string; }; development_credentials?: { client_id?: string; client_secret?: string; }; }; type AppGetInformationAboutAppPathParams = { appId: string; }; type AppGetInformationAboutAppResponse = { app_id?: string; app_name?: string; app_description?: string; app_type?: "ZoomApp" | "ChatBotApp" | "OAuthApp"; app_usage?: 1 | 2; app_status?: "PUBLISHED" | "UNPUBLISHED"; app_links?: { documentation_url?: string; privacy_policy_url?: string; support_url?: string; terms_of_use_url?: string; }; app_permissions?: { group?: string; group_message?: string; title?: string; permissions?: { name?: string; }[]; }[]; app_requirements?: { user_role?: "admin" | "user"; min_client_version?: string; account_eligibility?: { account_types?: string[]; premium_events?: { event_name?: string; event?: string; }[]; }; }; app_scopes?: string[]; }; type AppDeletesAppPathParams = { appId: string; }; type AppGetAPICallLogsPathParams = { appId: string; }; type AppGetAPICallLogsQueryParams = { next_page_token?: string; page_size?: number; duration?: 7 | 14 | 30; query?: string; method?: "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "CONNECT" | "OPTIONS" | "TRACE" | "PATCH"; status_code?: 400 | 401 | 403 | 404 | 409 | 429 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511; }; type AppGetAPICallLogsResponse = { next_page_token?: string; page_size?: number; call_logs?: { url_pattern?: string; time?: string; http_status?: 200 | 201 | 202 | 203 | 204 | 205 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 400 | 401 | 403 | 404 | 405 | 406 | 408 | 409 | 429 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 510 | 511; method?: "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "CONNECT" | "OPTIONS" | "TRACE" | "PATCH"; trace_id?: string; }[]; }; type AppGenerateZoomAppDeeplinkPathParams = { appId: string; }; type AppGenerateZoomAppDeeplinkRequestBody = { type: 1 | 2; target: "meeting" | "panel" | "modal"; action: string; }; type AppGenerateZoomAppDeeplinkResponse = { deeplink: string; }; type AppUpdateAppPreApprovalSettingPathParams = { appId: string; }; type AppUpdateAppPreApprovalSettingRequestBody = { action?: "approve_all" | "approve_user" | "disapprove_user" | "approve_group" | "disapprove_group" | "disapprove_all"; user_ids?: string[]; group_ids?: string[]; }; type AppUpdateAppPreApprovalSettingResponse = { executed_at?: string; user_ids?: string[]; group_ids?: string[]; }; type AppGetAppsUserRequestsPathParams = { appId: string; }; type AppGetAppsUserRequestsQueryParams = { page_size?: number; next_page_token?: string; status?: "pending" | "approved" | "rejected"; }; type AppGetAppsUserRequestsResponse = { next_page_token?: string; page_size?: number; } & { requests?: { request_user_id?: string; request_user_name?: string; request_user_email?: string; request_user_department?: string; request_date_time?: string; reason?: string; status?: "pending" | "approved" | "rejected"; }[]; }; type AppAddAppAllowRequestsForUsersPathParams = { appId: string; }; type AppAddAppAllowRequestsForUsersRequestBody = { action: "add_all" | "add_user" | "add_group"; user_ids?: string[]; group_ids?: string[]; }; type AppAddAppAllowRequestsForUsersResponse = { added_at?: string; user_ids?: string[]; group_ids?: string[]; }; type AppUpdateAppsRequestStatusPathParams = { appId: string; }; type AppUpdateAppsRequestStatusRequestBody = { action: "approve_all" | "approve" | "decline_all" | "decline" | "cancel"; request_user_ids?: string[]; }; type AppRotateClientSecretPathParams = { appId: string; }; type AppRotateClientSecretRequestBody = { action: "new" | "update"; revoke_old_secret_time: string; }; type AppRotateClientSecretResponse = { secret_id: string; new_secret: string; revoke_old_secret_time: string; } | { secret_id: string; revoke_old_secret_time: string; }; type AppGetWebhookLogsPathParams = { appId: string; }; type AppGetWebhookLogsQueryParams = { next_page_token?: string; page_size?: number; from?: string; to?: string; event?: string; type?: 1 | 2 | 3; retry_num?: number; }; type AppGetWebhookLogsResponse = { next_page_token?: string; page_size?: number; webhook_logs?: { event?: string; status?: number; failed_reason_type?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16; user_id?: string; endpoint?: string; subscription_id?: string; request_headers?: string; request_body?: string; response_headers?: string; response_body?: string; date_time?: string; trace_id?: string; request_id?: string; retry_num?: 0 | 1 | 2 | 3; }[]; }; type AppGetAppUserEntitlementsQueryParams = { user_id?: string; }; type AppGetAppUserEntitlementsResponse = { id?: string; plan_name?: string; plan_id?: string; }[]; type AppGetUsersAppRequestsPathParams = { userId: string; }; type AppGetUsersAppRequestsQueryParams = { page_size?: number; next_page_token?: string; type?: "active_requests" | "past_requests"; }; type AppGetUsersAppRequestsResponse = { next_page_token?: string; page_size?: number; } & { apps?: { app_id?: string; app_name?: string; app_type?: "ZoomApp" | "ChatBotApp" | "OAuthApp"; app_usage?: 1 | 2; app_status?: "PUBLISHED" | "UNPUBLISHED"; request_id?: string; request_date_time?: string; request_status?: "pending" | "approved" | "rejected"; }[]; }; type AppEnableOrDisableUserAppSubscriptionPathParams = { appId: string; userId: string; }; type AppEnableOrDisableUserAppSubscriptionRequestBody = { action: "enable" | "disable"; }; type AppGetUsersEntitlementsPathParams = { userId: string; }; type AppGetUsersEntitlementsResponse = { entitlements?: { entitlement_id?: number; }[]; }; type AppsGenerateAppDeeplinkRequestBody = { type?: 1 | 2; user_id?: string; action?: string; }; type AppsGenerateAppDeeplinkResponse = { deeplink?: string; }; type ManifestValidateAppManifestRequestBody = { manifest: object; app_id?: string; }; type ManifestValidateAppManifestResponse = { ok?: boolean; error?: string; errors?: { message: string; setting: string; }[]; }; type ManifestExportAppManifestFromExistingAppPathParams = { appId: string; }; type ManifestExportAppManifestFromExistingAppResponse = { manifest?: object; }; type ManifestUpdateAppByManifestPathParams = { appId: string; }; type ManifestUpdateAppByManifestRequestBody = { manifest: object; }; declare class MarketplaceEndpoints extends WebEndpoints { readonly app: { sendAppNotifications: (_: object & { body?: AppSendAppNotificationsRequestBody; }) => Promise>; getUserOrAccountEventSubscription: (_: object & { query: AppGetUserOrAccountEventSubscriptionQueryParams; }) => Promise>; createEventSubscription: (_: object & { body: AppCreateEventSubscriptionRequestBody; }) => Promise>; unsubscribeAppEventSubscription: (_: object & { query: AppUnsubscribeAppEventSubscriptionQueryParams; }) => Promise>; deleteEventSubscription: (_: { path: AppDeleteEventSubscriptionPathParams; } & object) => Promise>; subscribeEventSubscription: (_: { path: AppSubscribeEventSubscriptionPathParams; } & { body: AppSubscribeEventSubscriptionRequestBody; } & object) => Promise>; listApps: (_: object & { query?: AppListAppsQueryParams; }) => Promise>; createApps: (_: object & { body: AppCreateAppsRequestBody; }) => Promise>; getInformationAboutApp: (_: { path: AppGetInformationAboutAppPathParams; } & object) => Promise>; deletesApp: (_: { path: AppDeletesAppPathParams; } & object) => Promise>; getAPICallLogs: (_: { path: AppGetAPICallLogsPathParams; } & object & { query?: AppGetAPICallLogsQueryParams; }) => Promise>; generateZoomAppDeeplink: (_: { path: AppGenerateZoomAppDeeplinkPathParams; } & { body: AppGenerateZoomAppDeeplinkRequestBody; } & object) => Promise>; updateAppPreApprovalSetting: (_: { path: AppUpdateAppPreApprovalSettingPathParams; } & { body?: AppUpdateAppPreApprovalSettingRequestBody; } & object) => Promise>; getAppsUserRequests: (_: { path: AppGetAppsUserRequestsPathParams; } & object & { query?: AppGetAppsUserRequestsQueryParams; }) => Promise>; addAppAllowRequestsForUsers: (_: { path: AppAddAppAllowRequestsForUsersPathParams; } & { body: AppAddAppAllowRequestsForUsersRequestBody; } & object) => Promise>; updateAppsRequestStatus: (_: { path: AppUpdateAppsRequestStatusPathParams; } & { body: AppUpdateAppsRequestStatusRequestBody; } & object) => Promise>; rotateClientSecret: (_: { path: AppRotateClientSecretPathParams; } & { body: AppRotateClientSecretRequestBody; } & object) => Promise>; getWebhookLogs: (_: { path: AppGetWebhookLogsPathParams; } & object & { query?: AppGetWebhookLogsQueryParams; }) => Promise>; getAppUserEntitlements: (_: object & { query?: AppGetAppUserEntitlementsQueryParams; }) => Promise>; getUsersAppRequests: (_: { path: AppGetUsersAppRequestsPathParams; } & object & { query?: AppGetUsersAppRequestsQueryParams; }) => Promise>; enableOrDisableUserAppSubscription: (_: { path: AppEnableOrDisableUserAppSubscriptionPathParams; } & { body: AppEnableOrDisableUserAppSubscriptionRequestBody; } & object) => Promise>; getUsersEntitlements: (_: { path: AppGetUsersEntitlementsPathParams; } & object) => Promise>; }; readonly apps: { generateAppDeeplink: (_: object & { body?: AppsGenerateAppDeeplinkRequestBody; }) => Promise>; }; readonly manifest: { validateAppManifest: (_: object & { body: ManifestValidateAppManifestRequestBody; }) => Promise>; exportAppManifestFromExistingApp: (_: { path: ManifestExportAppManifestFromExistingAppPathParams; } & object) => Promise>; updateAppByManifest: (_: { path: ManifestUpdateAppByManifestPathParams; } & { body: ManifestUpdateAppByManifestRequestBody; } & object) => Promise>; }; } type AppDeauthorizedEvent = Event<"app_deauthorized"> & { event?: string; payload?: { user_id?: string; account_id?: string; client_id?: string; deauthorization_time?: string; signature?: string; event_ts?: number; }; }; type AppAuthorizationRequestCreatedEvent = Event<"app.authorization_request_created"> & { event?: string; event_ts?: number; payload?: { app_name?: string; app_type?: string; app_status?: "published" | "development"; app_description?: string; app_link?: { developer_documentation?: string; developer_privacy_policy?: string; developer_support?: string; developer_terms_of_use?: string; }; }; }; type MarketplaceEvents = AppDeauthorizedEvent | AppAuthorizationRequestCreatedEvent; declare class MarketplaceEventProcessor extends EventManager { } type MarketplaceOAuthOptions = CommonClientOptions; declare class MarketplaceOAuthClient = MarketplaceOAuthOptions> extends ProductClient { protected initAuth({ clientId, clientSecret, tokenStore, ...restOptions }: OptionsType): OAuth; protected initEndpoints(auth: OAuth, options: OptionsType): MarketplaceEndpoints; protected initEventProcessor(endpoints: MarketplaceEndpoints): MarketplaceEventProcessor; } type MarketplaceS2SAuthOptions = CommonClientOptions; declare class MarketplaceS2SAuthClient = MarketplaceS2SAuthOptions> extends ProductClient { protected initAuth({ clientId, clientSecret, tokenStore, accountId }: OptionsType): S2SAuth; protected initEndpoints(auth: S2SAuth, options: OptionsType): MarketplaceEndpoints; protected initEventProcessor(endpoints: MarketplaceEndpoints): MarketplaceEventProcessor; } export { ApiResponseError, AwsLambdaReceiver, AwsReceiverRequestError, ClientCredentialsRawResponseError, CommonHttpRequestError, ConsoleLogger, HTTPReceiverConstructionError, HTTPReceiverPortNotNumberError, HTTPReceiverRequestError, HttpReceiver, LogLevel, MarketplaceEndpoints, MarketplaceEventProcessor, MarketplaceOAuthClient, MarketplaceS2SAuthClient, OAuthInstallerNotInitializedError, OAuthStateVerificationFailedError, OAuthTokenDoesNotExistError, OAuthTokenFetchFailedError, OAuthTokenRawResponseError, OAuthTokenRefreshFailedError, ProductClientConstructionError, ReceiverInconsistentStateError, ReceiverOAuthFlowError, S2SRawResponseError, StatusCode, isCoreError, isStateStore }; export type { AppAddAppAllowRequestsForUsersPathParams, AppAddAppAllowRequestsForUsersRequestBody, AppAddAppAllowRequestsForUsersResponse, AppAuthorizationRequestCreatedEvent, AppCreateAppsRequestBody, AppCreateAppsResponse, AppCreateEventSubscriptionRequestBody, AppCreateEventSubscriptionResponse, AppDeauthorizedEvent, AppDeleteEventSubscriptionPathParams, AppDeletesAppPathParams, AppEnableOrDisableUserAppSubscriptionPathParams, AppEnableOrDisableUserAppSubscriptionRequestBody, AppGenerateZoomAppDeeplinkPathParams, AppGenerateZoomAppDeeplinkRequestBody, AppGenerateZoomAppDeeplinkResponse, AppGetAPICallLogsPathParams, AppGetAPICallLogsQueryParams, AppGetAPICallLogsResponse, AppGetAppUserEntitlementsQueryParams, AppGetAppUserEntitlementsResponse, AppGetAppsUserRequestsPathParams, AppGetAppsUserRequestsQueryParams, AppGetAppsUserRequestsResponse, AppGetInformationAboutAppPathParams, AppGetInformationAboutAppResponse, AppGetUserOrAccountEventSubscriptionQueryParams, AppGetUserOrAccountEventSubscriptionResponse, AppGetUsersAppRequestsPathParams, AppGetUsersAppRequestsQueryParams, AppGetUsersAppRequestsResponse, AppGetUsersEntitlementsPathParams, AppGetUsersEntitlementsResponse, AppGetWebhookLogsPathParams, AppGetWebhookLogsQueryParams, AppGetWebhookLogsResponse, AppListAppsQueryParams, AppListAppsResponse, AppRotateClientSecretPathParams, AppRotateClientSecretRequestBody, AppRotateClientSecretResponse, AppSendAppNotificationsRequestBody, AppSubscribeEventSubscriptionPathParams, AppSubscribeEventSubscriptionRequestBody, AppUnsubscribeAppEventSubscriptionQueryParams, AppUpdateAppPreApprovalSettingPathParams, AppUpdateAppPreApprovalSettingRequestBody, AppUpdateAppPreApprovalSettingResponse, AppUpdateAppsRequestStatusPathParams, AppUpdateAppsRequestStatusRequestBody, AppsGenerateAppDeeplinkRequestBody, AppsGenerateAppDeeplinkResponse, ClientCredentialsToken, HttpReceiverOptions, JwtToken, Logger, ManifestExportAppManifestFromExistingAppPathParams, ManifestExportAppManifestFromExistingAppResponse, ManifestUpdateAppByManifestPathParams, ManifestUpdateAppByManifestRequestBody, ManifestValidateAppManifestRequestBody, ManifestValidateAppManifestResponse, MarketplaceEvents, MarketplaceOAuthOptions, MarketplaceS2SAuthOptions, OAuthToken, Receiver, ReceiverInitOptions, S2SAuthToken, StateStore, TokenStore };