import { Observable } from "rxjs";
import { ScopedLocalStorage } from "../lib/ScopedLocalStorage";
export declare class Session {
    private readonly _id;
    private readonly _secret;
    private readonly _key;
    private readonly _storage;
    private _linked;
    constructor(storage: ScopedLocalStorage, id?: string, secret?: string, linked?: boolean);
    static load(storage: ScopedLocalStorage): Session | null;
    static clear(storage: ScopedLocalStorage): void;
    static get persistedSessionIdChange$(): Observable<{
        oldValue: string | null;
        newValue: string | null;
    }>;
    get id(): string;
    get secret(): string;
    get key(): string;
    get linked(): boolean;
    set linked(val: boolean);
    save(): Session;
    private persistLinked;
}
