export interface CropBox {
    x: number;
    y: number;
    width: number;
    height: number;
}
interface CropMetadata {
    x: number;
    y: number;
    width: number;
    height: number;
}
interface InitializeCropBoxParams {
    imageRect: DOMRect;
    naturalWidth: number;
    naturalHeight: number;
    targetWidth: number;
    targetHeight: number;
    aspectRatio: number;
    metadata?: CropMetadata;
}
interface ResizeCropBoxToViewportParams {
    cropBox: CropBox;
    previousImageRect: DOMRect;
    nextImageRect: DOMRect;
    naturalWidth: number;
    naturalHeight: number;
}
interface DragCropBoxParams {
    cropBox: CropBox;
    imageRect: DOMRect;
    startX: number;
    startY: number;
    clientX: number;
    clientY: number;
}
interface ResizeCropBoxFromHandleParams {
    startCropBox: CropBox;
    resizeHandle: string;
    startX: number;
    clientX: number;
    imageRect: DOMRect;
    naturalWidth: number;
    naturalHeight: number;
    targetWidth: number;
    targetHeight: number;
    aspectRatio: number;
}
interface ToNaturalCropDataParams {
    cropBox: CropBox;
    imageRect: DOMRect;
    naturalWidth: number;
    naturalHeight: number;
}
export declare function initializeCropBox({ imageRect, naturalWidth, naturalHeight, targetWidth, targetHeight, aspectRatio, metadata, }: InitializeCropBoxParams): CropBox;
export declare function resizeCropBoxToViewport({ cropBox, previousImageRect, nextImageRect, naturalWidth, naturalHeight, }: ResizeCropBoxToViewportParams): CropBox;
export declare function dragCropBox({ cropBox, imageRect, startX, startY, clientX, clientY, }: DragCropBoxParams): CropBox;
export declare function resizeCropBoxFromHandle({ startCropBox, resizeHandle, startX, clientX, imageRect, naturalWidth, naturalHeight, targetWidth, targetHeight, aspectRatio, }: ResizeCropBoxFromHandleParams): CropBox;
export declare function toNaturalCropData({ cropBox, imageRect, naturalWidth, naturalHeight, }: ToNaturalCropDataParams): {
    x: number;
    y: number;
    width: number;
    height: number;
};
export {};
//# sourceMappingURL=eden-image-cropper-state.d.ts.map