import { TemplateRef } from '@angular/core';
import { ControlValueAccessor, FormBuilder } from '@angular/forms';
import { DomSanitizer, SafeUrl } from '@angular/platform-browser';
import { NGXLogger } from 'ngx-logger';
import { Observable } from 'rxjs';
import { Shape } from '../../core/enums/shape';
import { UI } from '../../core/enums/ui';
export declare type UploadImageData = {
    left: number;
    top: number;
    scale: number;
    width: number;
    height: number;
    file: File;
};
declare enum Pages {
    view = 1,
    crop = 2
}
export declare class ImageUploaderComponent implements ControlValueAccessor {
    private fb;
    private logger;
    private sanitizer;
    ui: typeof UI;
    pages: typeof Pages;
    readonly host = "jnt-image-uploader-host";
    private file;
    progress: {
        uploading: boolean;
    };
    page: Pages;
    image: string;
    sketch: SafeUrl;
    form: import("@angular/forms").FormGroup;
    uploader: (data: UploadImageData) => Observable<string>;
    shape: Shape;
    width: number;
    height: number;
    imageTemplate: TemplateRef<any>;
    onChange: (image: string) => void;
    onTouched: () => void;
    registerOnChange: (fn: any) => any;
    registerOnTouched: (fn: any) => any;
    onBlur: () => void;
    constructor(fb: FormBuilder, logger: NGXLogger, sanitizer: DomSanitizer);
    writeValue(image: string): void;
    crop({ target }: {
        target: HTMLInputElement;
    }): void;
    upload(): void;
    cancel(): void;
}
export {};
