import { ChatMessageRole, IChatMessage, ISession, ISessionPrompt } from '@gaiot/apis'; import { Socket } from 'socket.io-client'; import EventBus from './EventBus'; import { ActionPayload, PluginFunctionBasic, Thought } from './PayloadTypes'; import { CVForceApi } from '@gaiot/apis'; import { ChatHistoryParams, IKnowledge } from '@gaiot/apis/dist/src/cvforce/model'; export interface QuestionBody { content: string; stream: boolean; requestId?: string; fileIds?: string[]; oldMessageId?: string; referenceFirst?: boolean; } export interface QuestionConfig { stream?: boolean; referenceFirst?: boolean; formatValues?: any; oldMessageId?: string; } type ActionPayloadBasic = ActionPayload; export type SessionEventName = 'init' | 'data:loading' | 'data:loaded' | 'data:updating' | 'data:updated' | 'data:creating' | 'data:created' | 'data:deleting' | 'data:deleted' | 'activated' | 'inactivated' | 'frozen' | 'history:loading' | 'history:loaded' | 'history:moreloading' | 'history:moreloaded' | 'history:add' | 'socket:connect' | 'socket:disconnect' | 'ready' | 'message:updated' | 'message:action' | 'message:content' | 'message:reference' | 'answer:finish' | 'error' | 'destroy'; export declare enum SessionErrors { DataRequestFailed = "data request error", SocketConnectionFailed = "socket error", IdUndefined = "session id is not defined", SendingEmptyContent = "failed at sending empty content", Frozen = "session is frozen", UserModeError = "failed at setting socket user mode", Inactive = "session is inactive" } export declare const SESSION_ERROR_CAUSE: { "session id is not defined": { code: number; message: string; }; "failed at sending empty content": { code: number; message: string; }; "session is frozen": { code: number; message: string; }; }; export default abstract class Session { protected token: string; protected lazyload?: boolean | undefined; protected _id?: string; protected _frozen: boolean; protected inactivating: boolean; protected _ready: boolean; protected event: EventBus; _applicationId: string; data: ISession | null; messages: IChatMessage[]; protected _loadingMessages: boolean; protected _loadingMessagesSize: number; cvforceApi: CVForceApi; socket: Socket | null; protected _promptVariables: ISessionPrompt[]; protected active: boolean; protected _stopAnswer: boolean; private _dataLoading; private _dataLoaded; constructor(token: string, _id?: string, _data?: Partial, lazyload?: boolean | undefined); get id(): string | undefined; get applicationId(): string; get ready(): boolean; get frozen(): boolean; protected set frozen(v: boolean); get knowledges(): IKnowledge[]; setKnowledges(knowledges?: IKnowledge[]): Promise; get promptVariables(): ISessionPrompt[]; setPromptVariables(v: ISessionPrompt[]): Promise; private getService; addEventListener(eventName: SessionEventName, callback: any, once?: boolean): void; removeEventListener(eventName: SessionEventName, callback: any): void; /** * 获取对话记录 * @param params ChatHistoryParams * @returns Promise */ fetchMessages(params?: ChatHistoryParams): Promise; rename(name: string): Promise; protected pushMessage(message: IChatMessage): Promise; reloadSessionInfo(): Promise; reload(): Promise; delete(): Promise; activate(): Promise; inactivate(immediately?: boolean): boolean; abstract prepareConnection(): Promise; abstract sendQuestion(params: QuestionBody, configs: QuestionConfig): any; abstract stopAnswer(): any; send(params: { text?: string; uuid?: string; fileIds?: string[]; }, configs?: QuestionConfig): Promise; protected getRelatedQuesion(message: IChatMessage): Promise; protected fillMessageReference(message: IChatMessage): Promise; answerAgain(configs?: QuestionConfig): Promise; setTop(top: boolean): Promise; suspend(): this | undefined; clear(): Promise; destroy(): string; } export {};