UNPKG

@metricinsights/concierge

Version:

Metric Insights Concierge Component

41 lines 1.71 kB
import React from 'react'; import { Block, BlockType } from './contexts/concierge-context'; import { Message } from './contexts/message-context'; export type EventType = 'click' | 'focus' | 'blur' | 'mouseenter' | 'mouseleave' | 'keydown' | 'keyup'; export interface ActionHandler { (event: React.MouseEvent | React.KeyboardEvent | React.FocusEvent, data: Record<string, string>): void | boolean; } type ConciergeKomponentKey = Capitalize<BlockType>; export interface ConciergeComponents { [key: ConciergeKomponentKey]: React.ComponentType<{ block: Block; message: Message; }>; } export interface ConciergeProps { title?: string; children?: React.ReactNode; onMessage?: (message: Message) => void; onMessageBlock?: (message: Message, block: Block) => void; render?: (props: { addMessage: (messageId: string, content: string, type: 'user' | 'assistant', blocks?: Block[]) => string; cancelRequest: () => void; clearMessages: () => void; sendMessage: (input: string) => void; setInput: (input: string) => void; toggleOpen: () => void; updateMessage: (messageId: string, updates: Partial<Omit<Message, 'id' | 'timestamp'>>) => void; components: ConciergeComponents; error: string | null; input: string; isLoading: boolean; isOpen: boolean; messages: Message[]; position: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left'; theme: 'light' | 'dark'; }) => React.ReactNode; components?: ConciergeComponents; } export declare const Concierge: React.FC<ConciergeProps>; export default Concierge; //# sourceMappingURL=concierge.d.ts.map