import { UmbFileDropzoneItemStatus } from './constants.js';
import type { UmbFileDropzoneDroppedItems, UmbFileDropzoneProgress, UmbUploadableItem } from './types.js';
import { UmbTemporaryFileManager, type UmbTemporaryFileModel } from '../../core/temporary-file/index.js';
import { UmbControllerBase } from '../../../libs/class-api/index.js';
/**
 * Manages the dropzone and uploads folders and files to the server.
 * @function createMediaItems - Upload files and folders to the server and creates the items using corresponding media type.
 * @function createTemporaryFiles - Upload the files as temporary files and returns the data.
 * @observable progress - Emits the number of completed items and total items.
 * @observable progressItems - Emits the items with their current status.
 */
export declare class UmbDropzoneManager extends UmbControllerBase {
    #private;
    protected readonly _tempFileManager: UmbTemporaryFileManager<UmbTemporaryFileModel>;
    readonly progress: import("rxjs").Observable<UmbFileDropzoneProgress>;
    readonly progressItems: import("rxjs").Observable<UmbUploadableItem[]>;
    /**
     * Uploads the files as temporary files and returns the data.
     * @param { File[] } files - The files to upload.
     * @returns {Promise<Array<UmbUploadableItem>>} - Files as temporary files.
     */
    createTemporaryFiles(files: Array<File>): Promise<Array<UmbUploadableItem>>;
    removeOne(item: UmbUploadableItem): void;
    remove(items: Array<UmbUploadableItem>): void;
    removeAll(): void;
    protected _setupProgress(items: UmbFileDropzoneDroppedItems, parent: string | null): UmbUploadableItem[];
    protected _updateStatus(item: UmbUploadableItem, status: UmbFileDropzoneItemStatus, statusMessage?: string): void;
    destroy(): void;
}
