import type Cropper from 'cropperjs'; import type { CropperCanvas, CropperImage, CropperSelection } from 'cropperjs'; export interface CropperCanvasProps { background?: boolean; disabled?: boolean; scaleStep?: number; themeColor?: string; } export interface CropperImageProps { initialCenterSize?: 'contain' | 'cover'; rotatable?: boolean; scalable?: boolean; skewable?: boolean; translatable?: boolean; } export interface CropperSelectionProps { aspectRatio?: number; initialAspectRatio?: number; initialCoverage?: number; dynamic?: boolean; movable?: boolean; resizable?: boolean; zoomable?: boolean; keyboard?: boolean; outlined?: boolean; precise?: boolean; } export interface CropperSelectionChangeDetail { x: number; y: number; width: number; height: number; } export interface CropperImageTransformDetail { matrix: number[]; oldMatrix: number[]; } export interface CropperProps { src?: string; canvasProps?: CropperCanvasProps; imageProps?: CropperImageProps; selectionProps?: CropperSelectionProps; template?: string; selectionX?: number; selectionY?: number; selectionWidth?: number; selectionHeight?: number; width?: number | string; height?: number | string; fitSelectionToImage?: boolean; } export interface CropperExpose { getInstance(): Cropper | null; getCropperCanvas(): CropperCanvas | null; getCropperImage(): CropperImage | null; getCropperSelection(): CropperSelection | null; getCropperSelections(): ReturnType | null; destroy(): void; }