@difizen/magent-chat
Version:
106 lines • 5.18 kB
TypeScript
import { BaseView, Deferred, ViewManager } from '@difizen/mana-app';
import type { RefObject } from 'react';
import rehypeRaw from 'rehype-raw';
import breaks from 'remark-breaks';
import remarkGfm from 'remark-gfm';
import { ConversationManager } from '../chat-base/conversation-manager.js';
import type { BaseConversationModel, IChatMessage } from '../chat-base/protocol.js';
import { ImageModal } from './components/markdown/index.js';
import './index.less';
export interface ChatProps {
className?: string;
}
export declare const DefaultGreeting: () => import("react/jsx-runtime").JSX.Element;
export declare const ChatComponent: import("react").ForwardRefExoticComponent<ChatProps & import("react").RefAttributes<HTMLDivElement>>;
export interface ChatViewOption extends IChatMessage {
id: string;
}
export declare class ChatView extends BaseView {
viewManager: ViewManager;
conversationManager: ConversationManager;
view: import("react").ForwardRefExoticComponent<ChatProps & import("react").RefAttributes<HTMLDivElement>>;
AvatarRender: (props: {
item: import("../index.js").DefaultChatMessageItemModel;
className?: string | undefined;
}) => import("react/jsx-runtime").JSX.Element;
Messages: () => import("react/jsx-runtime").JSX.Element;
Greeting: () => import("react/jsx-runtime").JSX.Element;
Input: () => import("react/jsx-runtime").JSX.Element;
Footer: () => import("react/jsx-runtime").JSX.Element;
ChatMessage: (props: {
message: import("../index.js").DefaultChatMessageModel;
}) => import("react/jsx-runtime").JSX.Element;
ChatMessageItem: (props: {
message: import("../index.js").DefaultChatMessageModel;
item: import("../index.js").DefaultChatMessageItemModel;
}) => import("react/jsx-runtime").JSX.Element;
Markdown: (props: import("./components/markdown/index.js").MarkdownProps) => import("react/jsx-runtime").JSX.Element;
getMarkdownProps(): {
components: {
code: (props: any) => import("react/jsx-runtime").JSX.Element;
img: typeof ImageModal;
};
remarkPlugins: (typeof remarkGfm | typeof breaks)[];
rehypePlugins: (typeof rehypeRaw)[];
};
option: ChatViewOption;
allowUploadingImage: boolean;
handleUploadImage: (e: any, calback: (params: any) => void) => {
new (executor: (resolve: (value: void | PromiseLike<void>) => void, reject: (reason?: any) => void) => void): Promise<void>;
all<T>(values: Iterable<T | PromiseLike<T>>): Promise<Awaited<T>[]>;
all<T_1 extends [] | readonly unknown[]>(values: T_1): Promise<{ -readonly [P in keyof T_1]: Awaited<T_1[P]>; }>;
race<T_2>(values: Iterable<T_2 | PromiseLike<T_2>>): Promise<Awaited<T_2>>;
race<T_3 extends [] | readonly unknown[]>(values: T_3): Promise<Awaited<T_3[number]>>;
readonly prototype: Promise<any>;
reject<T_4 = never>(reason?: any): Promise<T_4>;
resolve(): Promise<void>;
resolve<T_5>(value: T_5): Promise<Awaited<T_5>>;
resolve<T_6>(value: T_6 | PromiseLike<T_6>): Promise<Awaited<T_6>>;
allSettled<T_7 extends [] | readonly unknown[]>(values: T_7): Promise<{ -readonly [P_1 in keyof T_7]: PromiseSettledResult<Awaited<T_7[P_1]>>; }>;
allSettled<T_8>(values: Iterable<T_8 | PromiseLike<T_8>>): Promise<PromiseSettledResult<Awaited<T_8>>[]>;
any<T_9 extends [] | readonly unknown[]>(values: T_9): Promise<Awaited<T_9[number]>>;
any<T_10>(values: Iterable<T_10 | PromiseLike<T_10>>): Promise<Awaited<T_10>>;
readonly [Symbol.species]: PromiseConstructor;
};
showToBottomBtn: boolean;
conversation?: BaseConversationModel;
conversationReady: Promise<BaseConversationModel>;
protected conversationDeferred: Deferred<BaseConversationModel>;
/**
* A container DOM node for messages,
* making it convenient for scroll control and other functions.
*/
protected messageListRef?: RefObject<HTMLDivElement>;
constructor(option: ChatViewOption);
get sendable(): boolean;
protected toMessageOption(msgContent: string, image?: string): {
image?: string | undefined;
sender: {
type: string;
};
input: string;
id: string;
created?: string | undefined;
messages?: import("../chat-base/protocol.js").IChatMessageItem[] | undefined;
modified?: string | undefined;
stream: boolean;
token?: any;
};
sendMessage: (msgContent: string, image?: string) => Promise<void>;
onViewMount(): void;
protected toConversationOption(): {
messages: never[];
id: string;
created?: string | undefined;
input?: string | undefined;
modified?: string | undefined;
stream?: boolean | undefined;
token?: any;
};
protected initConversation: () => Promise<void>;
clear: () => Promise<void>;
scrollToBottom: (immediately?: boolean, smoothly?: boolean) => void;
onScroll: () => void;
setMessageListContainer: (domRef: RefObject<HTMLDivElement>) => void;
}
//# sourceMappingURL=view.d.ts.map