import type { CropperCanvas, CropperImage, CropperSelection } from 'cropperjs'; export type DragMode = 'move' | 'crop'; export type CanvasGeometry = { aspectRatio: number | null; width: number; height: number; }; export type ImgCropperWorkerParams = { originalSrc: string; sourceMime: string | null; image: CropperImage; selection: CropperSelection; canvas: CropperCanvas; selectHandle: HTMLElement | null; aspectRatio: number | null; }; export type ImgCropperResult = { dataUrl: string; width: number; height: number; mimeType: string; }; export interface ImgCropperWorker { cropBoxVisible: boolean; dragMode: DragMode; canvasGeometry: CanvasGeometry; destroy: () => void; ready: () => Promise; rotate: () => void | Promise; zoomIn: () => void; zoomOut: () => void; reset: () => Promise; crop: (options?: { fillColor?: string; }) => Promise; save: (options?: { fillColor?: string; }) => Promise; clearSelection: () => void; enableCropMode: () => void; refit: () => void | Promise; }