UNPKG

@cossistant/next

Version:

Next.js-ready SDK for building AI-powered support/chat widgets. Hooks + primitives, WS-driven, TypeScript-first. Next.js-ready, Tailwind optional.

59 lines (58 loc) 2.16 kB
import { PreviewTypingParticipant } from "./typing.js"; import { useConversationTimelineItems } from "./use-conversation-timeline-items.js"; //#region ../react/src/hooks/use-conversation-preview.d.ts type ConversationPreviewLastMessage = { content: string; time: string; isFromVisitor: boolean; senderName?: string; senderImage?: string | null; }; type ConversationPreviewAssignedAgent = { name: string; image: string | null; type: "human" | "ai" | "fallback"; }; type ConversationPreviewTypingParticipant = PreviewTypingParticipant; type ConversationPreviewTypingState = { participants: ConversationPreviewTypingParticipant[]; primaryParticipant: ConversationPreviewTypingParticipant | null; label: string | null; isTyping: boolean; }; type UseConversationPreviewOptions = { conversation: Conversation; /** * Whether the hook should fetch timeline items for the conversation. * Enabled by default. */ includeTimelineItems?: boolean; /** * Optional timeline items to merge with the live ones (e.g. optimistic items). */ initialTimelineItems?: TimelineItem[]; /** * Typing state configuration (mainly exclusions for the current visitor). */ typing?: { excludeVisitorId?: string | null; excludeUserId?: string | null; excludeAiAgentId?: string | null; }; }; type UseConversationPreviewReturn = { conversation: Conversation; title: string; lastMessage: ConversationPreviewLastMessage | null; assignedAgent: ConversationPreviewAssignedAgent; typing: ConversationPreviewTypingState; timeline: ReturnType<typeof useConversationTimelineItems>; }; /** * Composes conversation metadata including derived titles, last message * snippets and typing state for use in lists. */ declare function useConversationPreview(options: UseConversationPreviewOptions): UseConversationPreviewReturn; //#endregion export { ConversationPreviewAssignedAgent, ConversationPreviewLastMessage, ConversationPreviewTypingParticipant, ConversationPreviewTypingState, UseConversationPreviewOptions, UseConversationPreviewReturn, useConversationPreview }; //# sourceMappingURL=use-conversation-preview.d.ts.map