type SharedSession = {
    sessionToken: string;
    sessionTokenExpiresAt?: number;
};
type AccessTokenSlot = {
    accessToken: string;
    expiresAt: number;
    scope?: string;
};
type Store<T> = {
    get(): T | null;
    set(value: T): void;
    remove(): void;
};
export type { AccessTokenSlot, SharedSession };
export declare class AnonymousSessionCacheManager {
    private readonly slots;
    private readonly sessionStore;
    private readonly sessionKey;
    private readonly baseKey;
    private readonly useLocalStorage;
    constructor(clientId: string, cacheMode: 'localStorage' | 'memory');
    getStore(audience?: string, scope?: string): Store<AccessTokenSlot>;
    getSessionToken(): SharedSession | null;
    setSessionToken(session: SharedSession): void;
    removeAll(): void;
}
