import type { DialogDirectories } from '../common/interface.js';
import { NullProvider } from './common.js';
import type { BrowseableProvider, FilesMetadata } from './interface.js';
export declare class WebStorageProvider implements BrowseableProvider {
    browseable: boolean;
    private dirs;
    private _metadata;
    next: NullProvider;
    private prefix;
    private store;
    /** Whether or not we are doing multiple operations in one transaction */
    private transaction;
    constructor(prefix: string, store: Storage, dirs: DialogDirectories, browseable?: boolean);
    delete(path: string): Promise<void>;
    exists(path: string): Promise<boolean | null>;
    metadata(): Promise<FilesMetadata>;
    read(path: string): Promise<Uint8Array | null>;
    rename(dir: boolean, old_path: string, new_path: string): Promise<void>;
    private rename_file;
    private transaction_start;
    private transaction_end;
    private update_metadata;
    write(files: Record<string, Uint8Array>): Promise<void>;
}
export declare function migrate_localStorage(): void;
