import type { NewsroomRef } from '@prezly/sdk'; import type { UPLOADCARE_FILE_DATA_KEY } from '@prezly/uploadcare'; import type { FilePromise } from '@prezly/uploadcare-widget'; import type { SlateEditor } from '@udecode/plate-common'; interface File { [UPLOADCARE_FILE_DATA_KEY]?: { caption: string; }; cdnUrl: string; } export type ResultPromise = Multiple extends true ? FilePromise[] : [FilePromise]; export type UploadcareOptions = { captions?: boolean; crop?: ImagesOnly extends true ? boolean : never; files?: File[]; imagesOnly?: ImagesOnly; multiple?: Multiple; tabs?: string[]; } & MediaGalleryOptions; export type MediaGalleryOptions = MediaGallery extends true ? { mediaGalleryTab: true; newsroom: NewsroomRef; } : { mediaGalleryTab?: false; newsroom?: never; }; export interface Uploadcare { upload(editor: SlateEditor, options: UploadcareOptions): Promise>; } export {};