@agentman/chat-widget
Version:
Agentman Chat Widget for easy integration with web applications
35 lines (34 loc) • 1.44 kB
TypeScript
import type { Message, ChatState, FileAttachment } from './types/types';
export declare class StateManager {
private state;
private listeners;
constructor(initialState?: ChatState);
getState(): ChatState;
subscribe(listener: (state: ChatState) => void): () => void;
private setState;
private notifyListeners;
toggleChat(): void;
toggleExpand(): void;
setOpen(open: boolean): void;
setInitialized(initialized: boolean): void;
setSending(sending: boolean): void;
addMessage(message: Message): void;
setError(error?: string): void;
clearMessages(): void;
setMessages(msgs: Message[]): void;
updateMessage(messageId: string, updates: Partial<Message>): void;
deleteMessage(messageId: string): void;
getMessageById(messageId: string): Message | undefined;
getLastMessage(): Message | undefined;
getMessageCount(): number;
clearListeners(): void;
addPendingAttachment(attachment: FileAttachment): void;
updatePendingAttachment(attachmentId: string, updates: Partial<FileAttachment>): void;
updateAttachmentStatus(fileId: string, updates: Partial<FileAttachment>): void;
removePendingAttachment(fileId: string): void;
clearPendingAttachments(): void;
getPendingAttachments(): FileAttachment[];
setUploadingFiles(uploading: boolean): void;
getInitialState(): ChatState;
updateState(newState: Partial<ChatState>): void;
}