import { Bounds } from './model/bounds';
import { CornerMarker } from './model/cornerMarker';
import { CropTouch } from './model/cropTouch';
import { CropperSettings } from './cropperSettings';
import { DragMarker } from './model/dragMarker';
import { ImageCropperModel } from './model/imageCropperModel';
import { Point } from './model/point';
export declare class ImageCropper extends ImageCropperModel {
    private crop;
    private cropperSettings;
    private previousDistance;
    constructor(cropperSettings: CropperSettings);
    private static sign(x);
    private static getMousePos(canvas, evt);
    private static getTouchPos(canvas, touch);
    private static detectVerticalSquash(img);
    private getDataUriMimeType(dataUri);
    prepare(canvas: HTMLCanvasElement): void;
    resizeCanvas(width: number, height: number, setImage?: boolean): void;
    reset(): void;
    draw(ctx: CanvasRenderingContext2D): void;
    dragCenter(x: number, y: number, marker: DragMarker): void;
    enforceMinSize(x: number, y: number, marker: CornerMarker): Point;
    dragCorner(x: number, y: number, marker: CornerMarker): void;
    getSide(a: Point, b: Point, c: Point): number;
    handleRelease(newCropTouch: CropTouch): void;
    handleMove(newCropTouch: CropTouch): void;
    updateClampBounds(): void;
    getCropBounds(): Bounds;
    clampPosition(x: number, y: number): Point;
    isImageSet(): boolean;
    setImage(img: any): void;
    updateCropPosition(cropBounds: Bounds): void;
    private setCropPosition(cropPosition);
    private getCropPositionFromMarkers();
    private getCropPositionFromBounds(cropPosition);
    getCroppedImageHelper(preserveSize?: boolean, fillWidth?: number, fillHeight?: number): HTMLImageElement;
    getCroppedImage(preserveSize?: boolean, fillWidth?: number, fillHeight?: number): HTMLImageElement;
    getBounds(): Bounds;
    setBounds(bounds: any): void;
    onTouchMove(event: TouchEvent): void;
    onMouseMove(e: MouseEvent): void;
    move(cropTouch: CropTouch): void;
    getDragTouchForID(id: any): CropTouch | undefined;
    drawCursors(cropTouch: CropTouch): void;
    drawCornerCursor(marker: any, x: number, y: number): boolean;
    onTouchStart(event: TouchEvent): void;
    onTouchEnd(event: TouchEvent): void;
    drawImageIOSFix(ctx: CanvasRenderingContext2D, img: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, sx: number, sy: number, sw: number, sh: number, dx: number, dy: number, dw: number, dh: number): void;
    onMouseDown(event: MouseEvent): void;
    onMouseUp(event: MouseEvent): void;
}
