import { ChatMessage } from '../elements/chat-types';
/** Append a message; returns a new array. */
export declare function appendMessage(messages: ChatMessage[], msg: ChatMessage): ChatMessage[];
/** Replace a same-id message, or append when absent. */
export declare function upsertMessage(messages: ChatMessage[], msg: ChatMessage): ChatMessage[];
/** Patch the matched message (object patch or updater). Untouched items keep their reference. */
export declare function updateMessage(messages: ChatMessage[], id: string, patch: Partial<ChatMessage> | ((m: ChatMessage) => ChatMessage)): ChatMessage[];
/** Remove the matched message. */
export declare function removeMessage(messages: ChatMessage[], id: string): ChatMessage[];
/** Streaming primitive: concatenate `delta` onto the matched message's content. */
export declare function appendContent(messages: ChatMessage[], id: string, delta: string): ChatMessage[];
