import { FileRef } from '../models/file-ref';
import { FileServer } from '../models/file-server';
export declare class FileManager implements FileServer {
    #private;
    static inMemory(options?: Partial<InMemoryOptions>): FileManager;
    cancel: FileServer['cancel'];
    delete: FileServer['delete'];
    rename: FileServer['rename'];
    upload: FileServer['upload'];
    constructor(handlers: FileServer);
    get(id: string): FileRef | undefined;
    getIds(): string[];
    setFiles(files: FileRef[]): void;
    setProgress(id: string, progress: number): void;
    subscribe(observer: FileManager.Observer, filter?: string[]): () => void;
    unsubscribe(observer: FileManager.Observer): void;
    private executeObservers;
    private getDataObject;
    private isEqual;
}
export declare namespace FileManager {
    type Data = {
        [id: string]: {
            file: FileRef;
            progress: number;
        };
    };
    type DataMap = Map<string, {
        file: FileRef;
        progress: number;
    }>;
    type Observer = (data: Data) => Promise<void> | void;
}
interface InMemoryOptions {
    delay: {
        min?: number;
        max?: number;
    };
}
export {};
