import { EventEmitter } from '../../stencil-public-runtime'; export interface ChatMessage { id: string; text: string; isUser: boolean; timestamp: Date; } export type WidgetPosition = 'bottom-right' | 'bottom-left'; export interface ChatWidgetConfig { agentName?: string; agentRole?: string; agentAvatar?: string; primaryColor?: string; accentColor?: string; fontFamily?: string; width?: number; height?: number; welcomeMessage?: string; thankYouMessage?: string; placeholderText?: string; showMinimizeButton?: boolean; enableFileUpload?: boolean; enableSpeech?: boolean; showTimestamps?: boolean; collapsed?: boolean; position?: WidgetPosition; showPoweredBy?: boolean; poweredByLogo?: string; poweredByText?: string; poweredByBrand?: string; poweredByUrl?: string; poweredByColor?: string; agentId?: string; apikey?: string; apiEndpoint?: string; enableDebug?: string; tokenEndpoint?: string; clientId?: string; clientSecret?: string; zIndex?: number; customCSS?: string; enablePulsingAnimation?: boolean; popupMessage?: string; popupShowDelay?: number; popupHideDelay?: number; customerMetadata?: Record; } export declare class ChatWidget { el: HTMLElement; config: ChatWidgetConfig; agentName: string; agentRole: string; agentAvatar: string; primaryColor: string; accentColor: string; welcomeMessage: string; position: WidgetPosition; showMinimizeButton: boolean; enableFileUpload: boolean; enableSpeech: boolean; showTimestamps: boolean; agentId: string; apikey: string; token: string; apiEndpoint: string; enableDebug: string; placeholderText: string; thankYouMessage: string; showPoweredBy: boolean; poweredByLogo: string; poweredByText: string; poweredByBrand: string; poweredByUrl: string; poweredByColor: string; width: number; height: number; fontFamily: string; zIndex: number; customCSS: string; collapsedByDefault: boolean; enablePulsingAnimation: boolean; popupMessage: string; popupShowDelay: number; popupHideDelay: number; customerMetadata: Record; messages: ChatMessage[]; isMinimized: boolean; isTyping: boolean; inputValue: string; isChatOpen: boolean; currentPosition: WidgetPosition; showPopup: boolean; isUploading: boolean; messageSent: EventEmitter<{ message: string; widget: HTMLElement; }>; widgetOpened: EventEmitter<{ widget: HTMLElement; }>; widgetClosed: EventEmitter<{ widget: HTMLElement; }>; private messageIdCounter; private scrollTimeout; handleApikeyChange(newValue: string, oldValue: string): Promise; componentDidLoad(): Promise; configChanged(): void; customCSSChanged(): void; positionChanged(): void; collapsedByDefaultChanged(): void; private getConfig; private loadFontAwesome; private applyCustomCSS; private addMessage; private sendMessage; private getAuthHeaders; private getApiUrlFromApikey; private sendMessageToAgent; private toggleMinimize; private closeWidget; private openWidget; private clearConversation; private showPopupMessage; private handleKeyPress; private handleInputChange; private handleFileUpload; private uploadFile; private sendFileToAgent; private getSessionId; private loadAgentConfiguration; private getAgentAvatarUrl; private formatTime; private formatMessageText; private scrollToBottom; private debouncedScrollToBottom; render(): any; }