/** * Chat conversation-id persistence — the SSE/Guide chat's ONLY local state. * * The stored value is the SERVER-minted conversation id echoed in the chat * stream's leading metadata frame; the client never generates ids. Message * history itself lives server-side (`chat_conversations` / `chat_messages`) * and is rehydrated via the history endpoint — see * `use-chat-history-hydration.ts`. * * Built on the lib-standard `createLocalStorageAdapter` (SSR guard, * try/catch, quota-failure logging, dynamic namespacing) instead of raw * `window.localStorage`. The namespace resolver runs on EVERY read/write, so * a proxy-auth identity switch mid-page automatically re-partitions the key. * * Key shape: `mingo-chat-[-u-].conversation` */ import { type LocalStorageAdapter } from '../../../utils/local-storage-adapter'; export interface PersistedChatConversation { conversationId: string; } /** One adapter per chat `source` (= platform). Memoize per mount. */ export declare function createChatConversationStorage(source: string): LocalStorageAdapter; /** * Sweep THIS source's stale keys: the other-identity variants (base vs * impersonation), and retired key shapes from before the server-minted-id * design (raw `mingo-chat-` and versioned `-v1`/`-v2` full-history * stores). Boundary-aware: a hyphen-extended sibling source (`flamingo` vs * `flamingo-teaser`) is NOT this source's namespace and must never be swept. * * Raw storage enumeration is unavoidable here — the adapter abstraction is * per-key and Web Storage only exposes iteration on the raw object. */ export declare function pruneStaleChatConversationStorage(source: string): void; //# sourceMappingURL=chat-conversation-storage.d.ts.map