/**
 * Widget Types
 * Simplified appearance configuration
 */
export type WidgetPosition = 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
export type WidgetSize = 'small' | 'medium' | 'large';
export interface WidgetAppearance {
    primaryColor: string;
    position: WidgetPosition;
    size: WidgetSize;
    logo?: string;
    headerTitle: string;
    welcomeTitle?: string;
    welcomeMessage: string;
    placeholder: string;
}
export type SourceDisplayMode = 'none' | 'minimal' | 'with-score' | 'with-content' | 'full';
export interface WidgetSettings {
    autoOpen: boolean;
    autoOpenDelay?: number;
    persistConversation: boolean;
    showChatHistory?: boolean;
    showTimestamps: boolean;
    showTypingIndicator: boolean;
    enableFileUpload: boolean;
    enableFeedback: boolean;
    maxMessagesPerSession?: number;
    showSources: boolean;
    sourceDisplayMode: SourceDisplayMode;
    suggestedQuestions?: string[];
}
export interface WidgetBehavior {
    agentic: boolean;
    fallbackMessage?: string;
}
export interface WidgetConfig {
    appearance: WidgetAppearance;
    settings: WidgetSettings;
    behavior: WidgetBehavior;
    knowledgeBases: string[];
    actions?: string[];
}
export interface FileAttachment {
    name: string;
    size: number;
    extension: string;
}
export type KbDocument = {
    kbId: string;
    score?: number;
    doc: {
        pageContent: string;
        id: string;
        metadata: Record<string, unknown>;
    };
};
export type MessageContent = string;
export interface BaseMessage {
    type: string;
    content: MessageContent;
    id?: string;
    name?: string | null;
    response_metadata?: Record<string, any>;
    additional_kwargs?: Record<string, any>;
}
export interface ToolCall {
    name: string;
    args: Record<string, any>;
    id?: string;
    type?: string;
}
export interface UsageMetadata {
    input_tokens?: number;
    output_tokens?: number;
    total_tokens?: number;
    model_name?: string;
    [k: string]: any;
}
export interface AIMessage extends BaseMessage {
    type: "ai";
    tool_calls?: ToolCall[];
    invalid_tool_calls?: Array<Record<string, any>>;
    example?: boolean;
    usage_metadata?: UsageMetadata | null;
}
export interface HumanMessage extends BaseMessage {
    type: "human";
}
export interface SystemMessage extends BaseMessage {
    type: "system";
}
export interface ChatMessage extends BaseMessage {
    type: "chat";
}
export interface FunctionMessage extends BaseMessage {
    type: "function";
    name: string;
}
export interface ToolMessage extends BaseMessage {
    type: "tool";
    tool_call_id: string;
    artifact?: any;
}
export interface RemoveMessage extends BaseMessage {
    type: "remove";
    id: string;
}
export type AnyMessage = AIMessage | HumanMessage | SystemMessage | ChatMessage | FunctionMessage | ToolMessage | RemoveMessage;
export interface ConversationMessage {
    id: string;
    message: AnyMessage;
    timestamp: string;
    sources: KbDocument[];
    feedback?: "positive" | "negative";
    isError?: boolean;
    isStreaming?: boolean;
    toolExecuting?: string;
    toolCallToActionId?: Record<string, string>;
}
export interface WidgetProps {
    widgetId?: string;
    apiUrl?: string;
    previewMode?: boolean;
    previewConfig?: Partial<WidgetConfig>;
    position?: WidgetPosition;
    primaryColor?: string;
    size?: WidgetSize;
    headerTitle?: string;
    welcomeTitle?: string;
    welcomeMessage?: string;
    placeholder?: string;
    theme?: 'light' | 'dark';
    suggestedQuestions?: string[];
    customStyles?: Record<string, string>;
    defaultOpen?: boolean;
    zIndex?: number;
    onOpen?: () => void;
    onClose?: () => void;
    onMessage?: (message: ConversationMessage) => void;
    onError?: (error: Error) => void;
}
export interface ChatState {
    messages: ConversationMessage[];
    isOpen: boolean;
    isLoading: boolean;
    isTyping: boolean;
    error: string | null;
    conversationId: string;
    config: WidgetConfig | null;
}
//# sourceMappingURL=index.d.ts.map