import { ComputedRef, MaybeRefOrGetter } from 'vue'; import { IMessage } from '@cognigy/socket-client'; import { ChatConfig } from '../types'; /** * A message that may have been collated from multiple bot messages. * When collated, text becomes an array and collatedFrom contains the originals. */ export type CollatedMessage = IMessage & { /** * Original messages that were collated into this one (only present if collated) */ collatedFrom?: IMessage[]; }; export interface UseCollationReturn { /** * Messages with consecutive bot messages collated */ collatedMessages: ComputedRef; /** * Whether collation is currently enabled */ isCollationEnabled: ComputedRef; /** * Original message count */ originalCount: ComputedRef; /** * Collated message count */ collatedCount: ComputedRef; } /** * Collate consecutive bot messages into combined messages * * @param messages - Array of messages (can be ref, getter, or plain value) * @param config - Chat configuration (can be ref, getter, or plain value) * @returns Reactive collated messages * * @example * ```ts * const { collatedMessages, isCollationEnabled } = useCollation(messages, config) * * // Use in template * * ``` */ export declare function useCollation(messages: MaybeRefOrGetter, config?: MaybeRefOrGetter): UseCollationReturn;