import { ISessionStorage, PersistedSessionData } from "@tinycloud/sdk-core";
export type BrowserSessionLoadStatus = "loaded" | "missing" | "expired" | "corrupt" | "storage-unavailable";
export type BrowserSessionLoadResult = {
    status: "loaded";
    data: PersistedSessionData;
} | {
    status: Exclude<BrowserSessionLoadStatus, "loaded">;
    data: null;
};
export interface BrowserSessionStorageOptions {
    /** Storage backend. Defaults to globalThis.localStorage when available. */
    storage?: Storage;
    /** Prefix used to isolate sessions by app/origin/environment. */
    keyPrefix?: string;
}
export declare class BrowserSessionStorage implements ISessionStorage {
    private readonly storage?;
    private readonly keyPrefix;
    constructor(options?: BrowserSessionStorageOptions);
    private defaultStorage;
    private key;
    private assertPersistable;
    save(address: string, data: PersistedSessionData): Promise<void>;
    load(address: string): Promise<PersistedSessionData | null>;
    loadWithStatus(address: string): Promise<BrowserSessionLoadResult>;
    clear(address: string): Promise<void>;
    exists(address: string): boolean;
    isAvailable(): boolean;
}
//# sourceMappingURL=BrowserSessionStorage.d.ts.map