@apia/ai 3.0.20 → 3.0.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -9,28 +9,119 @@ declare const AutoscrollContainer: ({ children }: {
9
9
  children: ReactNode;
10
10
  }) => react.JSX.Element;
11
11
 
12
- declare class ChatMessage {
12
+ declare const AIFileContentAllowedExtensions: {
13
+ readonly svg: "svg";
14
+ readonly png: "png";
15
+ readonly jpg: "jpg";
16
+ readonly jpeg: "jpeg";
17
+ readonly webp: "webp";
18
+ readonly txt: "txt";
19
+ readonly doc: "doc";
20
+ readonly pdf: "pdf";
21
+ readonly docx: "docx";
22
+ readonly csv: "csv";
23
+ readonly xlsx: "xlsx";
24
+ readonly xls: "xls";
25
+ readonly mp3: "mp3";
26
+ readonly wav: "wav";
27
+ };
28
+ type AIFileContentAllowedExtension = keyof typeof AIFileContentAllowedExtensions;
29
+ type TAttachmentErrorCallback = 'fileExtension' | 'blobGeneration';
30
+ declare enum FileType {
31
+ DOCUMENT = "DOCUMENT",
32
+ IMAGE = "IMAGE",
33
+ AUDIO = "AUDIO",
34
+ SHEET = "SHEET"
35
+ }
36
+ declare enum AIMessageRole {
37
+ USER = "USER",
38
+ SYSTEM = "SYSTEM"
39
+ }
40
+ interface Reactive {
41
+ Component: FC<any>;
42
+ }
43
+ interface Cloneable {
44
+ clone: () => Cloneable;
45
+ }
46
+
47
+ declare class ChatMessage implements Reactive, Cloneable {
13
48
  message: ReactNode;
14
49
  messageType: TMessageType;
15
50
  attachments: IAttachment[];
51
+ reference: ReactNode;
16
52
  id: number;
17
53
  parseMessage(message: string): string;
18
- constructor(message?: ReactNode, messageType?: TMessageType, attachments?: IAttachment[]);
19
- copy: () => ChatMessage;
20
- Component: () => react.JSX.Element;
54
+ constructor(message?: ReactNode, messageType?: TMessageType, attachments?: IAttachment[], reference?: ReactNode);
55
+ clone: () => ChatMessage;
56
+ removeAttachment(idx: number): void;
57
+ Component: (({ className }: {
58
+ className?: string | undefined;
59
+ }) => react.JSX.Element) & {
60
+ displayName: string;
61
+ };
21
62
  }
22
63
 
23
64
  interface IAttachment {
24
- Component: (props?: any) => ReactNode;
25
- getId: () => string;
65
+ name: string;
66
+ id: string;
67
+ value: string;
26
68
  }
27
-
28
- declare enum AIMessageRole {
29
- USER = "USER",
30
- SYSTEM = "SYSTEM"
69
+ type TChatControllerState = {
70
+ isVisible: boolean;
71
+ isLoading: boolean;
72
+ canRecord: boolean;
73
+ canAttach: boolean;
74
+ canAddSystemMessage: boolean;
75
+ canAddUserMessage: boolean;
76
+ canShowSystemMessage: boolean;
77
+ canShowUserMessage: boolean;
78
+ hideDeleteButton: boolean;
79
+ maxAttachmentsSize: number;
80
+ messages: ChatMessage[];
81
+ currentMessage: ChatMessage;
82
+ };
83
+ interface BaseMessageCallbackProps {
84
+ message: ChatMessage;
31
85
  }
32
- interface Reactive {
33
- Component: FC<any>;
86
+ interface BaseMessageCallbackResponse {
87
+ responseMessage?: ChatMessage;
88
+ }
89
+ type MessageSubmitCallback<T extends BaseMessageCallbackProps> = (props: T) => Promise<BaseMessageCallbackResponse>;
90
+ type MessageResponseCallback<T extends BaseMessageCallbackResponse> = (props: T) => Promise<BaseMessageCallbackResponse>;
91
+ declare class ChatController2 {
92
+ private onMessageSubmit;
93
+ id: string;
94
+ private onMessageResponse?;
95
+ currentIndex: number;
96
+ state: TChatControllerState;
97
+ private internalAudioRecorder;
98
+ private internalCameraRecorder;
99
+ private maxId;
100
+ audioRecorder: {
101
+ start: () => void;
102
+ stop: () => Promise<void>;
103
+ record: number;
104
+ state: _apia_util.AudioRecorderState;
105
+ };
106
+ constructor(props: Partial<TChatControllerState>, onMessageSubmit: MessageSubmitCallback<BaseMessageCallbackProps>, id: string, onMessageResponse?: MessageResponseCallback<BaseMessageCallbackResponse> | undefined);
107
+ removeMessage(idx: number): void;
108
+ addMessage(message: ChatMessage): void;
109
+ clearHistory(): void;
110
+ clearMessage(): void;
111
+ removeAttachment(attachment: IAttachment): void;
112
+ private isValidToShow;
113
+ nextMessage(): void;
114
+ prevMessage(): void;
115
+ History: (() => react.JSX.Element) & {
116
+ displayName: string;
117
+ };
118
+ Attachments: (() => react.JSX.Element) & {
119
+ displayName: string;
120
+ };
121
+ TextArea: (() => react.JSX.Element) & {
122
+ displayName: string;
123
+ };
124
+ Renderer: () => react.JSX.Element;
34
125
  }
35
126
 
36
127
  declare class AIContent extends CollectorField implements Reactive {
@@ -48,6 +139,8 @@ declare class AIMessageAttachments implements Reactive, IAttachment {
48
139
  customDescription: boolean;
49
140
  constructor(role: AIMessageRole, content: AIContent, close?: (() => void) | undefined);
50
141
  getId: () => string;
142
+ name: string;
143
+ value: string;
51
144
  addDescription: () => Promise<void>;
52
145
  Component: (props: {
53
146
  closeButton?: boolean;
@@ -119,6 +212,14 @@ declare class MultipleChoiceMessage<OptionProps> extends ChatMessage {
119
212
  }) => ReactElement);
120
213
  }
121
214
 
215
+ declare class FloatingChatController extends ChatController2 {
216
+ constructor(props: Partial<TChatControllerState>, onMessageSubmit: MessageSubmitCallback<BaseMessageCallbackProps>, id: string, onMessageResponse?: MessageResponseCallback<BaseMessageCallbackResponse>);
217
+ open(): void;
218
+ Window: (() => react.JSX.Element) & {
219
+ displayName: string;
220
+ };
221
+ }
222
+
122
223
  declare class ResponseStream extends EventEmitter<{
123
224
  part: string;
124
225
  }> {
@@ -220,5 +321,33 @@ declare function getImagesWithDescription({ multiple, }: {
220
321
  multiple?: boolean;
221
322
  }): Promise<TGenerateFromImage[]>;
222
323
 
223
- export { AIMessageAttachments, AutoscrollContainer, ChatController, ChatMessage, DashboardsRoutinesGeneration, MultipleChoiceMessage, ResponseStream, RoutinesGeneration, type TGenerateFromImage$1 as TGenerateFromImage, type TMessageType, type TMultipleChoiceMessageOption, type TPollRoutineResult, type TRoutineCompletion, getImageFromDisk, getImagesFromDisk, getImagesWithDescription };
324
+ declare class AIFileContent extends AIContent implements Reactive, IAttachment {
325
+ type: FileType;
326
+ fileUrl: string;
327
+ fileName: string;
328
+ extension: AIFileContentAllowedExtension;
329
+ private __file;
330
+ private __error?;
331
+ private overrideSize;
332
+ id: string;
333
+ constructor(fileUrl: string, fileName: string, f?: File, error?: Partial<Record<TAttachmentErrorCallback, () => void>>);
334
+ value: string;
335
+ getId: () => string;
336
+ setOverrideSize(overrideSize: {
337
+ width: number;
338
+ height: number;
339
+ }): this;
340
+ get file(): File;
341
+ inferContent: () => string;
342
+ inferExtension: (extension: AIFileContentAllowedExtension) => FileType | undefined;
343
+ static isValidExtension: (extension: string) => extension is "svg" | "jpg" | "jpeg" | "png" | "webp" | "pdf" | "txt" | "doc" | "docx" | "csv" | "xlsx" | "xls" | "mp3" | "wav";
344
+ static blobToBase64: (blob: Blob) => Promise<string>;
345
+ static fromFile: (f: File, error?: Partial<Record<TAttachmentErrorCallback, () => void>>) => Promise<AIFileContent>;
346
+ static getExtensionFromFileName(fileName: string): "svg" | "jpg" | "jpeg" | "png" | "webp" | "pdf" | "txt" | "doc" | "docx" | "csv" | "xlsx" | "xls" | "mp3" | "wav";
347
+ private static __getExtensionErrorMessage;
348
+ private __throwError;
349
+ Component: (props?: Record<string, unknown>) => react.JSX.Element;
350
+ }
351
+
352
+ export { AIFileContent, AIMessageAttachments, AutoscrollContainer, ChatController, ChatController2, ChatMessage, DashboardsRoutinesGeneration, FloatingChatController, MultipleChoiceMessage, ResponseStream, RoutinesGeneration, type TGenerateFromImage$1 as TGenerateFromImage, type TMessageType, type TMultipleChoiceMessageOption, type TPollRoutineResult, type TRoutineCompletion, getImageFromDisk, getImagesFromDisk, getImagesWithDescription };
224
353
  //# sourceMappingURL=index.d.ts.map