import { MapStorage } from './MapStorage';
import { SessionStorage } from './SessionStorage';
import { Storage } from './Storage';
import { Dependencies } from '../oc/ObjectContainer';
/**
 * The `link SessionMap` storage is an implementation of the
 * `link Storage` interface acting as a synchronization proxy between
 * the underlying map storage and the `sessionStorage` DOM storage.
 */
export declare class SessionMapStorage<V> extends Storage<V> {
    /**
     * The map storage, synced with the session storage.
     */
    private _map;
    /**
     * The session storage, synced with the map storage.
     */
    private _session;
    static get $dependencies(): Dependencies;
    /**
     * Initializes the storage.
     *
     * @param map The map storage to use.
     * @param session The session storage to use.
     */
    constructor(map: MapStorage<V>, session: SessionStorage<V>);
    /**
     * @inheritDoc
     */
    init(): this;
    /**
     * @inheritDoc
     */
    has(key: string): boolean;
    /**
     * @inheritDoc
     */
    get(key: string): V | undefined;
    /**
     * @inheritDoc
     */
    set(key: string, value: V): this;
    /**
     * @inheritDoc
     */
    delete(key: string): this;
    /**
     * @inheritDoc
     */
    clear(): this;
    /**
     * @inheritDoc
     */
    keys(): Iterable<string>;
    /**
     * @override
     */
    size(): number;
}
//# sourceMappingURL=SessionMapStorage.d.ts.map