import { AuthenticationState, IO } from "@baqhub/sdk";
interface BaseStorageAdapter {
    getString: (key: string) => Promise<string | undefined>;
    setString: (key: string, value: string) => Promise<void>;
    removeString: (key: string) => Promise<void>;
}
export declare enum StorageAdapterType {
    STANDARD = "standard",
    SECURE = "secure"
}
export interface StorageAdapter extends BaseStorageAdapter {
    type: StorageAdapterType.STANDARD;
}
export interface SecureStorageAdapter extends BaseStorageAdapter {
    type: StorageAdapterType.SECURE;
}
export declare const Storage: {
    read<T extends IO.Any>(provider: BaseStorageAdapter, model: T, key: string): Promise<IO.TypeOf<T> | undefined>;
    write<T extends IO.Any>(provider: BaseStorageAdapter, model: T, key: string, value: IO.TypeOf<T>): Promise<void>;
};
export declare class AuthenticationStorage {
    private adapter;
    private secureAdapter?;
    constructor(adapter: StorageAdapter, secureAdapter?: SecureStorageAdapter | undefined);
    read(): Promise<AuthenticationState | undefined>;
    write(state: AuthenticationState | undefined): Promise<void | void[]>;
}
export {};
