import { Hex } from "@toruslabs/metadata-helpers"; import { BaseSessionManager } from "./base"; import type { SessionManagerOptions } from "./interfaces"; export declare class SessionManager extends BaseSessionManager { sessionServerBaseUrl: string; sessionNamespace: string; allowedOrigin: string | boolean; sessionTime: number; /** * The session id to use for storage. Must be a 32 byte hex string. */ protected _sessionId: Hex; private serverHandler; private readonly useLocalStorage; private localStorageHandler?; constructor({ sessionServerBaseUrl, sessionNamespace, sessionTime, sessionId, allowedOrigin, useLocalStorage }?: SessionManagerOptions); get localStorageHandlerStorageKey(): string | undefined; get serverHandlerStorageKey(): string; private get baseLocalStorageKey(); static generateRandomSessionKey(): Hex; /** * Sets the session id. * @param sessionId - The session id to set. Must be a 64 character hex string. */ setSessionId(sessionId: Hex): void; createSession(data: T, headers?: RequestInit["headers"]): Promise; authorizeSession({ headers }?: { headers: RequestInit["headers"]; }): Promise; updateSession(data: Partial, headers?: RequestInit["headers"]): Promise; invalidateSession(headers?: RequestInit["headers"]): Promise; clearStorage(): void; clearOrphanedData(baseKey?: string): void; /** * Runs a local-storage operation, swallowing any errors so that failures * like QuotaExceededError never break the primary server-backed flow. */ private safeLocalStorageOp; private getLocalStorageHandler; }