import type { ArkmeAvatarImageSnapshot } from './avatar-image-store.js'; import type { ArkmeSourceItem, ArkmeAuthSnapshot, ArkmeClientConfig, ArkmeInterwovenMention, ArkmeInterwovenState } from '../types.js'; import type { ArkmeConversationMemoryCache, ArkmeConversationTimelineSnapshot, ArkmeConversationViewportSnapshot } from './conversation-memory-cache.js'; export interface ConversationWindowContentSnapshot { timeline: ArkmeConversationTimelineSnapshot; avatars?: ArkmeAvatarImageSnapshot[]; selfAvatarRef?: string; viewport?: ArkmeConversationViewportSnapshot; moments?: ArkmeInterwovenMention[]; interwovenState?: ArkmeInterwovenState; } export interface ConversationWindowBootstrap { version: 1; accountKey: string; sourceKey: string; auth: { status: 'authenticated'; environment: ArkmeAuthSnapshot['environment']; userId: number; }; config?: ArkmeClientConfig; content?: ConversationWindowContentSnapshot; } declare let provider: { accountKey: string; read(sourceKey: string): ConversationWindowContentSnapshot | undefined; } | undefined; /** The surface remains the cache owner; opening a window only copies its current projection. */ export declare function registerConversationWindowContent(accountKey: string, read: NonNullable['read']): () => void; export declare function readConversationWindowBootstrap(accountKey: string, sourceKey: string, source?: ArkmeSourceItem): ConversationWindowBootstrap | undefined; export declare function readConversationWindowContent(cache: ArkmeConversationMemoryCache, sourceKey: string): ConversationWindowContentSnapshot | undefined; export declare function restoreConversationWindowContent(cache: ArkmeConversationMemoryCache, sourceKey: string, content: ConversationWindowContentSnapshot): void; export declare function validConversationWindowBootstrap(value: ConversationWindowBootstrap | undefined, accountKey: string, sourceKey: string): value is ConversationWindowBootstrap; export {}; //# sourceMappingURL=conversation-window-bootstrap.d.ts.map