@forbespro/lead-agent
Version:
Lead Chat Agent React Component
62 lines (61 loc) • 1.81 kB
TypeScript
declare global {
interface Window {
dataLayer?: any[];
gtag?: (...args: any[]) => void;
}
}
export type ChatbotWidgetProps = {
apiUrl?: string;
initialMessages?: Message[];
initialChatId?: string;
onSubmit?: (formData: any) => void;
onStageComplete?: (stage: string, data: any) => void;
onGoalComplete?: (goal: string, data: any) => void;
tools?: Record<string, any>;
systemPrompt?: string;
productSearchEndpoint?: string;
conversationFlow?: 'initial' | 'learn_more' | 'quote_flow' | 'completed';
title?: string;
subtitle?: string;
avatarUrl?: string;
logoUrl?: string;
algoliaApiKey?: string;
algoliaAppId?: string;
quoteFlowEnabled?: boolean;
productExplorationEnabled?: boolean;
currentProduct?: {
name?: string;
sku: string;
model_number?: string;
product_type?: string;
manufacturer?: string;
product_image?: string;
product_image_alt?: string;
slug?: string;
id?: string;
objectID?: string;
category?: string;
};
isOpen?: boolean;
onClose?: () => void;
onToggle?: () => void;
onOpenChange?: (open: boolean) => void;
};
export type FormField = {
id: string;
label: string;
type: 'text' | 'email' | 'tel' | 'select' | 'multiselect' | 'textarea' | 'address';
placeholder?: string;
required?: boolean;
options?: string[];
isAI?: boolean;
data?: any;
};
interface Message {
role: string;
content: string;
id?: string;
[key: string]: any;
}
export declare function ChatbotWidget({ initialMessages, onStageComplete, onGoalComplete, tools, onClose, initialChatId, ...props }: ChatbotWidgetProps & {}): import("react/jsx-runtime").JSX.Element;
export {};