import { Hex } from "@toruslabs/metadata-helpers"; export type IRequestBody = Record; export interface ApiRequestParams { url: string; method?: string; headers?: RequestInit["headers"]; data?: IRequestBody; } export interface IStorageManager { createSession(data: T): Promise; authorizeSession(): Promise; updateSession(data: Partial): Promise; invalidateSession(): Promise; } export type SessionApiResponse = { message?: string; }; export type StorageOperation = "create" | "update" | "invalidate"; export interface StorageHandlerStoreOptions { headers?: RequestInit["headers"]; namespace?: string; timeout?: number; allowedOrigin?: string | boolean; operation?: StorageOperation; } export interface StorageHandlerRetrieveOptions { headers?: RequestInit["headers"]; namespace?: string; } export interface StorageHandler { getStorageKey(key: Hex): string; storeData(key: Hex, data: Partial | T | Record, options?: StorageHandlerStoreOptions): Promise; retrieveData(key: Hex, options?: StorageHandlerRetrieveOptions): Promise; clearStorage(key: Hex): void | Promise; clearOrphanedData(baseKey?: string): void | Promise; } export interface StorageManagerOptions { sessionServerBaseUrl: string; sessionNamespace?: string; sessionTime?: number; /** * The session id to use for storage. Must be a 32 byte hex string. */ sessionId?: Hex; allowedOrigin?: string | boolean; useLocalStorage?: boolean; } export interface SessionRequestBody extends IRequestBody { key: string; data: string; signature: string; timeout?: number; namespace?: string; allowedOrigin?: string | boolean; } export declare const SESSION_SERVER_API_URL = "https://api.web3auth.io/session-service";