/**
 * Nicely initialy forked - with no costumizaion - from
 * https://www.npmjs.com/package/ngx-image-cropper
 *
 * Tx Martijn!
 * GitHub @ @MartijnW49
 */
import { ElementRef, EventEmitter, OnChanges, SimpleChanges, ChangeDetectorRef, NgZone } from '@angular/core';
import { DomSanitizer, SafeUrl, SafeStyle } from '@angular/platform-browser';
import { CropperPosition, ImageCroppedEvent } from './image.cropper.interfaces';
import * as i0 from "@angular/core";
export declare type OutputType = 'base64' | 'file' | 'both';
export declare class ImageCropperComponent implements OnChanges {
    private sanitizer;
    private cd;
    private zone;
    private originalImage;
    private originalBase64;
    private moveStart;
    private maxSize;
    private originalSize;
    private setImageMaxSizeRetries;
    private cropperScaledMinWidth;
    private cropperScaledMinHeight;
    safeImgDataUrl: SafeUrl | string;
    marginLeft: SafeStyle | string;
    imageVisible: boolean;
    sourceImage: ElementRef;
    set imageFileChanged(file: File);
    set imageChangedEvent(event: any);
    set imageBase64(imageBase64: string);
    format: 'png' | 'jpeg' | 'bmp' | 'webp' | 'ico';
    outputType: OutputType;
    maintainAspectRatio: boolean;
    aspectRatio: number;
    resizeToWidth: number;
    cropperMinWidth: number;
    roundCropper: boolean;
    onlyScaleDown: boolean;
    imageQuality: number;
    autoCrop: boolean;
    cropper: CropperPosition;
    alignImage: 'left' | 'center';
    startCropImage: EventEmitter<void>;
    imageCropped: EventEmitter<ImageCroppedEvent>;
    imageCroppedBase64: EventEmitter<string>;
    imageCroppedFile: EventEmitter<Blob>;
    imageLoaded: EventEmitter<void>;
    cropperReady: EventEmitter<void>;
    loadImageFailed: EventEmitter<void>;
    constructor(sanitizer: DomSanitizer, cd: ChangeDetectorRef, zone: NgZone);
    ngOnChanges(changes: SimpleChanges): void;
    private initCropper;
    private loadImageFile;
    private isValidImageType;
    private loadBase64Image;
    imageLoadedInView(): void;
    private checkImageMaxSizeRecursively;
    onResize(): void;
    rotateLeft(): void;
    rotateRight(): void;
    flipHorizontal(): void;
    flipVertical(): void;
    private transformBase64;
    private resizeCropperPosition;
    private resetCropperPosition;
    startMove(event: any, moveType: string, position?: string | null): void;
    moveImg(event: any): void;
    private setMaxSize;
    private setCropperScaledMinSize;
    private checkCropperPosition;
    moveStop(): void;
    private move;
    private resize;
    private checkAspectRatio;
    private doAutoCrop;
    crop(outputType?: OutputType): ImageCroppedEvent | Promise<ImageCroppedEvent> | null;
    private getImagePosition;
    private cropToOutputType;
    private cropToBase64;
    private cropToFile;
    private getCanvasBlob;
    private getQuality;
    private getResizeRatio;
    private getClientX;
    private getClientY;
    static ɵfac: i0.ɵɵFactoryDeclaration<ImageCropperComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ImageCropperComponent, "uno-image-cropper", never, { "imageFileChanged": "imageFileChanged"; "imageChangedEvent": "imageChangedEvent"; "imageBase64": "imageBase64"; "format": "format"; "outputType": "outputType"; "maintainAspectRatio": "maintainAspectRatio"; "aspectRatio": "aspectRatio"; "resizeToWidth": "resizeToWidth"; "cropperMinWidth": "cropperMinWidth"; "roundCropper": "roundCropper"; "onlyScaleDown": "onlyScaleDown"; "imageQuality": "imageQuality"; "autoCrop": "autoCrop"; "cropper": "cropper"; "alignImage": "alignImage"; }, { "startCropImage": "startCropImage"; "imageCropped": "imageCropped"; "imageCroppedBase64": "imageCroppedBase64"; "imageCroppedFile": "imageCroppedFile"; "imageLoaded": "imageLoaded"; "cropperReady": "cropperReady"; "loadImageFailed": "loadImageFailed"; }, never, never, false>;
}
