import { ContextKey, ContextReader } from '@webpieces/core-util'; /** * MutableContextStore - the BROWSER ContextReader. * * Browsers have no AsyncLocalStorage, so apps (Angular/React) hold one of these * (e.g. as an Angular service / React context value) and set values as they become * known (login token, selected tenant, ...). The ContextMgr then reads from it on * every outbound request. * * Example (Angular): * ```typescript * const store = new MutableContextStore(); * // startup: * HeaderRegistry.configure(AppHeaders.getAllHeaders(), CompanyHeaders.getAllHeaders(), true); * const factory = new ClientHttpFactory(new ContextMgr(store)); * const client = factory.createClient(SaveApi, new ClientConfig(baseUrl)); * * // later, when the user logs in / picks a tenant: * store.set(WebpiecesCoreHeaders.AUTHORIZATION, token); * store.set(CompanyHeaders.TENANT_ID, tenantId); * ``` */ export declare class MutableContextStore implements ContextReader { private values; /** Set (or overwrite) the current value for a context key. */ set(key: ContextKey, value: string): void; /** Remove the current value for a context key (e.g. on logout). */ remove(key: ContextKey): void; /** Clear all stored values. */ clear(): void; read(key: ContextKey): string | undefined; }