import type Cropper from 'cropperjs'; export interface CustomCropper extends Cropper { url: ''; cropBoxData: Cropper.ImageData; canvasData: Cropper.ImageData; cropper?: HTMLDivElement; } export declare enum OutputType { BASE64 = "base64", BLOB = "blob", BLOB_URL = "blobURL" } export type IOutputTypeUnion = `${OutputType}`; export interface ICropperOptions { cropperInstance?: CustomCropper | Cropper; src?: string; crossOrigin?: '' | 'anonymous' | 'use-credentials'; cropperJsOpts?: ICropOpts; gifJsOptions?: IGifOpts; outputType?: IOutputTypeUnion; } export interface IGifOpts { repeat?: number; quality?: number; workers?: number; workerScript?: string; background?: string; width?: number; height?: number; transparent?: string | null; dither?: boolean; debug?: boolean; } export interface ICropOpts { width?: number; height?: number; scaleX?: number; scaleY?: number; x?: number; y?: number; background?: string; rotate?: number; left?: number; top?: number; } export interface IImageData { width: number; height: number; naturalWidth: number; naturalHeight: number; } export interface ICommonCropOptions { cropperJsOpts: Required; imageData: IImageData; cropBoxData: Cropper.CropBoxData; } export declare class SuperImageCropper { private cropperJsInstance?; private parsedFrameInfo; private commonCropOptions; private frameCropperInstance; private inputCropperOptions; private imageTypeInfo; crop(inputCropperOptions: ICropperOptions): Promise; private init; private cleanUserInput; private userInputValidator; private normalizeRotate; private imageDataFormat; private decodeGIF; private ensureFrameCropperExist; private cropFrames; private saveGif; private checkIsStaticImage; private handleStaticImage; }