import { CloudinaryImage } from "@cloudinary/url-gen/assets/CloudinaryImage"; import { VideoCodecAction } from "@cloudinary/url-gen/actions/transcode/VideoCodecAction"; import { ITrackedPropertiesThroughAnalytics } from "@cloudinary/url-gen/sdkAnalytics/interfaces/ITrackedPropertiesThroughAnalytics"; export type Plugin = (element: HTMLImageElement | HTMLVideoElement, cloudinaryImage: CloudinaryImage, htmlPluginState?: HtmlPluginState, baseAnalyticsOptions?: BaseAnalyticsOptions, plugins?: Plugins) => Promise; export type Plugins = Plugin[]; export type PluginResponse = 'canceled' | void | Features; export type AccessibilityMode = 'darkmode' | 'brightmode' | 'monochrome' | 'colorblind'; export type PlaceholderMode = 'vectorize' | 'pixelate' | 'blur' | 'predominant-color'; export type HtmlPluginState = { cleanupCallbacks: Function[]; pluginEventSubscription: Function[]; }; export type VideoSources = { type: VideoType; codecs: Array; transcode: VideoCodecAction; }[] | undefined; export type VideoType = 'flv' | '3gp' | 'mov' | 'mpg' | 'avi' | 'wmv' | 'ogv' | string; export type PictureSources = { minWidth?: number; maxWidth?: number; image: CloudinaryImage; sizes?: string; }[]; export type PictureSource = { minWidth?: number; maxWidth?: number; image: CloudinaryImage; sizes?: string; }; export type BaseAnalyticsOptions = { sdkSemver: string; techVersion: string; sdkCode: string; product?: string; }; export type AnalyticsOptions = Parameters[0]; type FeatureNames = Pick; export type Features = Partial>; export type VideoPoster = CloudinaryImage | 'auto'; export type VideoOptions = { useFetchFormat?: boolean; }; export {};