export interface NativeStorageWrapper {
    clear(): void;
    getItem(key: string): string | null;
    removeItem(key: string): void;
    setItem(key: string, data: any): void;
}
export declare class FallbackStorage implements NativeStorageWrapper {
    private items;
    clear(): void;
    getItem(key: string): any | null;
    setItem(key: string, data: any): void;
    removeItem(key: string): void;
}
/**
 * Per the HTML spec browsers are allowed to throw exceptions for (local/session)Storage so it needs to be wrapped.
 * See: https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage#Exceptions
 */
export declare class StorageWrapper implements NativeStorageWrapper {
    private storage;
    protected static hasStorage(key: 'localStorage' | 'sessionStorage'): boolean;
    constructor(storage: NativeStorageWrapper);
    clear(): void;
    getItem(key: string): any;
    removeItem(key: string): void;
    setItem(key: string, data: any): void;
}
export declare class SessionStorage extends StorageWrapper {
    constructor();
}
export declare class LocalStorage extends StorageWrapper {
    constructor();
}
