import { Storage as ImaStorage } from './Storage';
import { Dependencies } from '../oc/ObjectContainer';
import { ClientWindow } from '../window/ClientWindow';
/**
 * Implementation of the `link Storage` interface that relies on the
 * native `sessionStorage` DOM storage for storing its entries.
 */
export declare class SessionStorage<V> extends ImaStorage<V> {
    /**
     * The DOM storage providing the actual storage of the entries.
     */
    private _storage;
    static get $dependencies(): Dependencies;
    /**
     * Initializes the session storage.
     */
    constructor(window: ClientWindow);
    /**
     * @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;
    /**
     * Deletes the oldest entry in this storage.
     */
    _deleteOldestEntry(): void;
}
//# sourceMappingURL=SessionStorage.d.ts.map