import { DownloadContext } from '../../context';
import { IEventHub } from '../../events';
import { IStorage } from '../../storage';
import { ILogger } from '../../utilities';

export interface IBlob {
    data?: Blob;
    location: string;
}
export declare class IndexedDBStorage implements IStorage {
    readonly context: DownloadContext;
    private logger;
    private eventHub;
    private db;
    constructor(context: DownloadContext, logger: ILogger, eventHub: IEventHub);
    createRoot(path: string): Promise<string>;
    createDefaultRoot(): Promise<string>;
    getDefaultRootName(): Promise<string>;
    removeDefaultRoot(): Promise<void>;
    writable(_path: string): Promise<boolean>;
    store(path: string, data: ArrayBuffer): Promise<boolean>;
    storePartial(path: string, offset: number, data: ArrayBuffer): Promise<boolean>;
    flushStoredPartial(_path: string): Promise<boolean>;
    exists(path: string): Promise<boolean>;
    remove(path: string): Promise<boolean>;
    combine(path: string, chunks: Array<{
        from: number;
        path: string;
        to: number;
    }>): Promise<boolean>;
    getSize(path: string): Promise<number>;
    get(path: string): Promise<ArrayBuffer | null>;
}
