import { ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnInit, SimpleChanges } from '@angular/core';
import { DomSanitizer, SafeStyle, SafeUrl } from '@angular/platform-browser';
import { CropperPosition, Dimensions, ImageCroppedEvent, ImageTransform } from '../interfaces';
import { MoveTypes } from '../interfaces/move-start.interface';
export declare class ImageCropperComponent implements OnChanges, OnInit {
    private sanitizer;
    private cd;
    private Hammer;
    private originalImage;
    private transformedImage;
    private originalBase64;
    private transformedBase64;
    private moveStart;
    private originalSize;
    private transformedSize;
    private setImageMaxSizeRetries;
    private cropperScaledMinWidth;
    private cropperScaledMinHeight;
    private cropperScaledMaxWidth;
    private cropperScaledMaxHeight;
    private exifTransform;
    private autoRotateSupported;
    private stepSize;
    safeImgDataUrl: SafeUrl | string;
    safeTransformStyle: SafeStyle | string;
    marginLeft: SafeStyle | string;
    maxSize: Dimensions;
    imageVisible: boolean;
    moveTypes: typeof MoveTypes;
    wrapper: ElementRef;
    sourceImage: ElementRef;
    imageChangedEvent: any;
    imageURL: string;
    imageBase64: string;
    imageFile: File;
    format: 'png' | 'jpeg' | 'bmp' | 'webp' | 'ico';
    maintainAspectRatio: boolean;
    transform: ImageTransform;
    aspectRatio: number;
    resizeToWidth: number;
    resizeToHeight: number;
    cropperMinWidth: number;
    cropperMinHeight: number;
    cropperMaxHeight: number;
    cropperMaxWidth: number;
    cropperStaticWidth: number;
    cropperStaticHeight: number;
    canvasRotation: number;
    initialStepSize: number;
    roundCropper: boolean;
    onlyScaleDown: boolean;
    imageQuality: number;
    autoCrop: boolean;
    backgroundColor: string;
    containWithinAspectRatio: boolean;
    hideResizeSquares: boolean;
    cropper: CropperPosition;
    alignImage: 'left' | 'center';
    disabled: boolean;
    imageCropped: EventEmitter<ImageCroppedEvent>;
    startCropImage: EventEmitter<void>;
    imageLoaded: EventEmitter<HTMLImageElement>;
    cropperReady: EventEmitter<Dimensions>;
    loadImageFailed: EventEmitter<void>;
    constructor(sanitizer: DomSanitizer, cd: ChangeDetectorRef);
    ngOnChanges(changes: SimpleChanges): void;
    private onChangesInputImage;
    private isValidImageChangedEvent;
    private setCssTransform;
    ngOnInit(): void;
    private initCropper;
    private loadImage;
    private loadImageFile;
    private isValidImageType;
    private loadBase64Image;
    private checkExifAndLoadBase64Image;
    private loadImageFromURL;
    private transformOriginalImage;
    private transformImageBase64;
    private getTransformedSize;
    private setTransformedImage;
    imageLoadedInView(): void;
    private checkImageMaxSizeRecursively;
    private sourceImageLoaded;
    onResize(): void;
    private activatePinchGesture;
    private resizeCropperPosition;
    resetCropperPosition(): void;
    keyboardAccess(event: any): void;
    private changeKeyboardStepSize;
    private keyboardMoveCropper;
    private getPositionForKey;
    private getInvertedPositionForKey;
    private getEventForKey;
    startMove(event: any, moveType: MoveTypes, position?: string | null): void;
    startPinch(event: any): void;
    moveImg(event: any): void;
    onPinch(event: any): void;
    private setMaxSize;
    private setCropperScaledMinSize;
    private setCropperScaledMinWidth;
    private setCropperScaledMinHeight;
    private setCropperScaledMaxSize;
    private checkCropperPosition;
    moveStop(): void;
    pinchStop(): void;
    private move;
    private resize;
    private checkAspectRatio;
    private doAutoCrop;
    crop(): ImageCroppedEvent | null;
    private getImagePosition;
    private getOffsetImagePosition;
    private cropToBase64;
    private getQuality;
    getResizeRatio(width: number, height: number): number;
    private getClientX;
    private getClientY;
}
