import { Transfer } from './transfer.core';
import { FileManagerOptions } from '../interface/fileManagerOptions.interface';
export declare class FileObject {
    lastModifiedDate: Date | null;
    size: number | null;
    type: string;
    name: string;
    constructor(fileOrInput: any);
    private _createFromFakePath(path);
    private _createFromObject(object);
}
export declare class FileManager {
    options: FileManagerOptions;
    protocol: any;
    readonly id: string;
    readonly progressPercent$: any;
    readonly progress$: any;
    readonly progress: any;
    readonly element: any;
    readonly object: FileObject;
    readonly name: string;
    readonly type: string;
    readonly date: Date | null;
    readonly size: number | null;
    readonly inQueue: boolean;
    readonly success: boolean;
    readonly error: boolean;
    private _id;
    private _protocol;
    private _uploader;
    private _fileElement;
    private _file;
    private _speedDefault;
    private _progress$;
    private _speed$;
    private _isUploading;
    private _isUploaded;
    private _isSuccess;
    private _isCancel;
    private _isError;
    private _imageLoad;
    private _fileActive;
    /**
     * Creates an instance of FileManager.
     *
     * @param {*} _file
     * @param {Transfer} [_uploader]
     * @param {FileManagerOptions} [_options]
     *
     * @memberOf FileManager
     */
    constructor(_file: any, _options?: FileManagerOptions, _uploader?: Transfer);
    /**
     * Bind uploader to FileManager
     *
     * @param {Transfer} _uploader
     *
     * @memberOf FileManager
     */
    bindUploader(_uploader: Transfer): void;
    /**
     * Bind options to FileManager
     *
     * @param {FileManagerOptions} _options
     *
     * @memberOf FileManager
     */
    bindOptions(_options: FileManagerOptions): void;
    /**
     * Return uploader if exists else throw error
     *
     * @returns {Transfer}
     *
     * @memberOf FileManager
     */
    getUploader(): Transfer;
    /**
     * Start uploading this file
     *
     *
     * @memberOf FileManager
     */
    upload(): void;
    /**
     * Cancel upload process from this file
     *
     *
     * @memberOf FileManager
     */
    cancel(): void;
    _cancel(): void;
    /**
     * Remove this FileManger from uploader queue
     *
     *
     * @memberOf FileManager
     */
    remove(): void;
    isUploaded(): boolean;
    isUploading(): boolean;
    canUpload(): boolean;
    handleImageLoad(): void;
    /**
     * Overwrite functions
     */
    /**
     * Callback
     * @private
     */
    onBeforeUpload(): void;
    onProgressSpeed(speed: any): void;
    /**
     * Callback
     * @param {Number} progress
     * @private
     */
    onProgress(progress: number): void;
    /**
     * Callback
     * @param {any} response
     * @param {Number} status
     * @param {Object} headers
     */
    onSuccess(response: any, status: number, headers: any): void;
    onError(response: any, status: number, headers: any): void;
    /**
     *  Internal functions
     */
    _onBeforeUpload(): void;
    _onProgressFileSpeed(speed: any): void;
    _onProgress(_progress: number): void;
    _onSuccess(response: any, status: number, headers: any): void;
    _onError(response: any, status: number, headers: any): void;
    private _setFileActive(check);
}
