import type { TSubmitBatchProcessorJobRes, batchProcessorBody, TGetTranscriptAccessLink, } from "@calcom/app-store/dailyvideo/zod"; import type { GetRecordingsResponseSchema, GetAccessLinkResponseSchema } from "@calcom/prisma/zod-utils"; import type { EventBusyDate } from "./Calendar"; import type { CredentialPayload } from "./Credential"; export interface VideoCallData { type: string; id: string; password: string; url: string; } // VideoApiAdapter is defined by the Video App. The App currently can choose to not define it. So, consider in type that VideoApiAdapter can be undefined. export type VideoApiAdapter = | { createMeeting(event: CalendarEvent): Promise; updateMeeting(bookingRef: PartialReference, event: CalendarEvent): Promise; deleteMeeting(uid: string): Promise; getAvailability(dateFrom?: string, dateTo?: string): Promise; getRecordings?(roomName: string): Promise; getRecordingDownloadLink?(recordingId: string): Promise; createInstantCalVideoRoom?(endTime: string): Promise; getAllTranscriptsAccessLinkFromRoomName?(roomName: string): Promise>; getAllTranscriptsAccessLinkFromMeetingId?(meetingId: string): Promise>; submitBatchProcessorJob?(body: batchProcessorBody): Promise; getTranscriptsAccessLinkFromRecordingId?( recordingId: string ): Promise; checkIfRoomNameMatchesInRecording?(roomName: string, recordingId: string): Promise; getMeetingInformation?(roomName: string): Promise; } | undefined; export type VideoApiAdapterFactory = (credential: CredentialPayload) => VideoApiAdapter;