brainkb-assistant
Version:
A configurable, standalone BrainKB Assistant that can be integrated into any website
115 lines • 3.42 kB
TypeScript
import '../styles/brainkb-assistant.css';
export interface BrainKBConfig {
branding?: {
title?: string;
subtitle?: string;
logo?: string;
primaryColor?: string;
secondaryColor?: string;
accentColor?: string;
};
features?: {
enableQuickActions?: boolean;
enableFileUpload?: boolean;
enableMessageEditing?: boolean;
enableCodeRendering?: boolean;
enableMarkdown?: boolean;
enableContextDetection?: boolean;
enableTypingIndicator?: boolean;
enableExpandableWindow?: boolean;
enableDragAndDrop?: boolean;
enableKeyboardShortcuts?: boolean;
};
api?: {
endpoint?: string;
streaming?: boolean;
type?: 'rest' | 'websocket';
headers?: Record<string, string>;
timeout?: number;
retryAttempts?: number;
auth?: {
enabled?: boolean;
type?: 'jwt' | 'bearer' | 'none';
jwtEndpoint?: string;
username?: string;
password?: string;
emailField?: string;
tokenKey?: string;
refreshTokenKey?: string;
autoRefresh?: boolean;
refreshThreshold?: number;
};
};
ui?: {
position?: 'bottom-right' | 'bottom-left' | 'top-right' | 'top-left';
size?: {
width?: string;
height?: string;
expandedWidth?: string;
expandedHeight?: string;
};
theme?: 'light' | 'dark' | 'auto';
language?: string;
zIndex?: number;
styling?: {
buttonColor?: string;
buttonHoverColor?: string;
chatBackground?: string;
textColor?: string;
borderColor?: string;
shadowColor?: string;
forcePosition?: boolean;
customClasses?: {
container?: string;
button?: string;
chat?: string;
header?: string;
};
};
};
quickActions?: Array<{
id: string;
label: string;
icon?: string;
action: string;
description?: string;
url?: string;
external?: boolean;
}>;
contextDetection?: {
enabled?: boolean;
selectors?: {
title?: string;
description?: string;
keywords?: string[];
};
autoDetect?: boolean;
};
customization?: {
welcomeMessage?: string;
placeholderText?: string;
errorMessage?: string;
loadingMessage?: string;
};
callbacks?: {
onMessageSend?: (message: string) => void;
onResponseReceived?: (response: any) => void;
onError?: (error: any) => void;
onFileUpload?: (file: File) => void;
onQuickAction?: (action: string) => void;
};
}
interface BrainKBAssistantWrapperProps {
config?: BrainKBConfig;
currentPage?: string;
pageContext?: {
title?: string;
description?: string;
keywords?: string[];
entities?: string[];
};
isBrainKB?: boolean;
}
export default function BrainKBAssistantWrapper({ config, currentPage, pageContext, isBrainKB }: BrainKBAssistantWrapperProps): import("react/jsx-runtime").JSX.Element;
export {};
//# sourceMappingURL=BrainKBAssistantWrapper.d.ts.map