///
import { ModalProps } from 'antd';
import { UploadProps } from 'antd/es/upload';
export type BeforeUpload = Exclude;
export type BeforeUploadReturnType = ReturnType;
export type ImgCropProps = {
quality?: number;
fillColor?: string;
zoomSlider?: boolean;
rotationSlider?: boolean;
aspectSlider?: boolean;
showReset?: boolean;
resetText?: string;
aspect?: number;
minZoom?: number;
maxZoom?: number;
cropShape?: 'rect' | 'round';
showGrid?: boolean;
cropperProps?: Omit;
modalClassName?: string;
modalTitle?: string;
modalWidth?: number | string;
modalOk?: string;
modalCancel?: string;
onModalOk?: (value: BeforeUploadReturnType) => void;
onModalCancel?: (resolve: (value: BeforeUploadReturnType) => void) => void;
modalProps?: Omit;
beforeCrop?: BeforeUpload;
children: JSX.Element;
};
export type CropperProps = {
image?: string;
video?: string | VideoSrc[];
transform?: string;
crop: Point;
zoom: number;
rotation: number;
aspect: number;
minZoom: number;
maxZoom: number;
cropShape: 'rect' | 'round';
cropSize?: Size;
objectFit?: 'contain' | 'cover' | 'horizontal-cover' | 'vertical-cover';
showGrid?: boolean;
zoomSpeed: number;
zoomWithScroll?: boolean;
onCropChange: (location: Point) => void;
onZoomChange?: (zoom: number) => void;
onRotationChange?: (rotation: number) => void;
onCropComplete?: (croppedArea: Area, croppedAreaPixels: Area) => void;
onCropAreaChange?: (croppedArea: Area, croppedAreaPixels: Area) => void;
onCropSizeChange?: (cropSize: Size) => void;
onInteractionStart?: () => void;
onInteractionEnd?: () => void;
onMediaLoaded?: (mediaSize: MediaSize) => void;
style: {
containerStyle?: React.CSSProperties;
mediaStyle?: React.CSSProperties;
cropAreaStyle?: React.CSSProperties;
};
classes: {
containerClassName?: string;
mediaClassName?: string;
cropAreaClassName?: string;
};
restrictPosition: boolean;
mediaProps: React.ImgHTMLAttributes | React.VideoHTMLAttributes;
disableAutomaticStylesInjection?: boolean;
initialCroppedAreaPixels?: Area;
initialCroppedAreaPercentages?: Area;
onTouchRequest?: (e: React.TouchEvent) => boolean;
onWheelRequest?: (e: WheelEvent) => boolean;
setImageRef?: (ref: React.RefObject) => void;
setVideoRef?: (ref: React.RefObject) => void;
setMediaSize?: (size: MediaSize) => void;
setCropSize?: (size: Size) => void;
nonce?: string;
};
export type Size = {
width: number;
height: number;
};
export type MediaSize = {
width: number;
height: number;
naturalWidth: number;
naturalHeight: number;
};
export type Point = {
x: number;
y: number;
};
export type Area = {
width: number;
height: number;
x: number;
y: number;
};
export type VideoSrc = {
src: string;
type?: string;
};