export type ConversationKey = string | number | symbol; export declare const chatMessagesStoreHelper: { _chatMessagesStores: Map>; get: (conversationKey: ConversationKey) => ChatMessagesStore | undefined; set: (key: ConversationKey, store: ChatMessagesStore) => void; delete: (key: ConversationKey) => void; getMessages: (conversationKey: ConversationKey) => any[] | undefined; }; export declare class ChatMessagesStore { private listeners; private conversationKey; private snapshotResult; private throttleTimer; private pendingEmit; private readonly throttleInterval; private isDestroyed; private emitListeners; private throttledEmitListeners; constructor(defaultMessages: () => Promise, conversationKey?: ConversationKey); private initializeMessages; private setSnapshotResult; private setMessagesInternal; setMessages: (messages: T[] | ((ori: T[]) => T[])) => boolean; getMessages: () => T[]; getMessage: (id: string | number) => T | undefined; addMessage: (message: T) => boolean; setMessage: (id: string | number, message: Partial | ((message: T) => Partial)) => boolean; removeMessage: (id: string | number) => boolean; getSnapshot: () => { messages: T[]; isDefaultMessagesRequesting: boolean; }; subscribe: (callback: () => void) => () => void; /** * Clean up resources (throttle timer) when the store is no longer needed. * Should be called when the component unmounts or the store is disposed. */ destroy: () => void; } export declare function useChatStore(defaultValue: () => Promise, conversationKey: ConversationKey): { messages: T[]; isDefaultMessagesRequesting: boolean; addMessage: (message: T) => boolean; removeMessage: (id: string | number) => boolean; setMessage: (id: string | number, message: Partial | ((message: T) => Partial)) => boolean; getMessage: (id: string | number) => T | undefined; setMessages: (messages: T[] | ((ori: T[]) => T[])) => boolean; getMessages: () => T[]; };