import { NgZone } from '@angular/core';
import { MatDialog } from '@angular/material';
import { IProgressContainer } from '../models/progress-container.model';
import { LoggerService } from '../services/logger.service';
import { DatatransferStore } from '../stores/datatransfer.store';
import { DateUtil } from '../utils/date.util';
import { PaginationService } from '../services/pagination.service';
import { ExportService } from '../services/export.service';
import { IUploader } from '../io/uploaders/base.uploader';
import { IDownloader } from '../io/downloaders/base.downloader';
import { IDatatransferItem } from '../models/datatransfer-item.model';
import { TransferStatus } from '../enums/transfer-status.enum';
import { TransferType } from '../enums/transfer-type.enum';
export declare class DatatransferFacade {
    private logger;
    private zone;
    private store;
    private dateUtil;
    private paginationService;
    private exportService;
    private uploader;
    private downloader;
    private dialog;
    private uploadProgress;
    private downloadProgress;
    private progressInterval;
    private bitrateInterval;
    constructor(logger: LoggerService, zone: NgZone, store: DatatransferStore, dateUtil: DateUtil, paginationService: PaginationService, exportService: ExportService, uploader: IUploader, downloader: IDownloader, dialog: MatDialog);
    private init;
    assignUploadBrowse(element: any, isDirectory?: boolean): void;
    assignUploadDrop(element: any): void;
    openBrowseDialog(): void;
    openEditPathDialog(item: IDatatransferItem): void;
    openEditFilenameDialog(item: IDatatransferItem): void;
    toggleVisible(checked: boolean): void;
    startAll(): void;
    pauseAll(): void;
    removeAll(): void;
    retryAll(): void;
    removeSelected(): void;
    addItem(item: IDatatransferItem): void;
    removeItem(item: IDatatransferItem): void;
    retryItem(item: IDatatransferItem): void;
    changeItemStatus(item: IDatatransferItem, status: TransferStatus, message?: string): void;
    updateItemProgress(item: IDatatransferItem, progress: number): void;
    updateOverallProgress(progressContainer: IProgressContainer, transferType: TransferType, progress: number): void;
    updateOverallSize(progressContainer: IProgressContainer, size: number): void;
    download(filename: string, url: string, sizeInBytes: number): void;
    export(exportType: string): void;
    getStatusClass(status: TransferStatus): string;
    showStartButton(): boolean;
    showPauseButton(): boolean;
    showRemoveButton(): boolean;
    showRetryButton(): boolean;
    showRetryButtonByItem(item: IDatatransferItem): boolean;
    showExportButton(): boolean;
    showPreprocessingCheckbox(): boolean;
    showPreprocessingTooltip(): boolean;
    showSpinner(item: IDatatransferItem): boolean;
    showProgressbar(item: IDatatransferItem): boolean;
    showPath(items: IDatatransferItem[], index: number): boolean;
    showEditDialog(item: IDatatransferItem): boolean;
    editPath(item: IDatatransferItem, oldPath: string, newPath: string): void;
    editFilename(item: IDatatransferItem, name: string): void;
    parseMessage(item: IDatatransferItem): string;
}
