export interface ImageDownscaleOptions { enabled: boolean; thresholdEdge: number; thresholdPixels: number; maxEdge: number; maxPixels: number; quality: number; } export interface ImageSize { width: number; height: number; } export interface DecodedImage extends ImageSize { source: unknown; } export interface ImageDownscaleDeps { decode: (file: File) => Promise; encode: (image: DecodedImage, size: ImageSize, type: string, quality: number) => Promise; release: (image: DecodedImage) => void; readHeader: (file: File, byteLength: number) => Promise; } export declare function resolveImageDownscaleOptions(...overrides: (Partial | undefined)[]): ImageDownscaleOptions; export declare function isDownscalableImageType(type: string | undefined): boolean; export declare function isAnimatedWebpHeader(bytes: Uint8Array): boolean; export declare function getDownscaleTarget(size: ImageSize, options: ImageDownscaleOptions): ImageSize | undefined; export declare function downscaleImageFile(file: File, options: ImageDownscaleOptions, deps: ImageDownscaleDeps): Promise; export declare function createBrowserImageDownscaleDeps(): ImageDownscaleDeps;