UNPKG

lexica-dialog-model

Version:
84 lines (83 loc) 2.2 kB
import { ItemType, ResponseType } from './Intent'; declare enum MessageType { REQUEST = "REQUEST", RESPONSE = "RESPONSE" } declare enum RequestType { AUDIO = "AUDIO", TEXT = "TEXT", IMAGE = "IMAGE", VIDEO = "VIDEO", FILE = "FILE" } interface TextRequest { type: RequestType.TEXT; message: string; } interface FileRequest { type: RequestType.FILE | RequestType.IMAGE | RequestType.VIDEO | RequestType.AUDIO; path: string; contentType: string; } interface BaseResponse { message: string; } interface TextResponse extends BaseResponse { type: ResponseType.TEXT; } interface OptionsResponse extends BaseResponse { type: ResponseType.OPTIONS; options: Array<{ command: string; features: { [index: string]: string; }; message: string; textOnlyIndicator: string; }>; } interface ItemsResponse extends BaseResponse { type: ResponseType.ITEMS; items: Array<{ type: ItemType; url: string; message: string; }>; } declare type Request = TextRequest | FileRequest; declare type Response = TextResponse | OptionsResponse | ItemsResponse; interface Comment { text?: string; rating?: number; newType?: boolean; } interface BaseMessage { uni: string; messenger: string; date: Date; senderId: string; sessionId?: string; type: MessageType; issueId?: string; request?: Request; rawRequest?: any; commands?: string[]; categories?: string[]; subCategories?: string[]; response?: Response; rawResponse?: any; comment?: Comment; } interface RequestMessage extends BaseMessage { type: MessageType.REQUEST; request: Request; rawRequest: any; commands: string[]; } interface ResponseMessage extends BaseMessage { type: MessageType.RESPONSE; response: Response; rawResponse: any; } declare type Message = RequestMessage | ResponseMessage; export { MessageType, RequestType, ResponseType, ItemType, TextRequest, FileRequest, BaseResponse, TextResponse, OptionsResponse, ItemsResponse, Request, Response, Comment, BaseMessage, RequestMessage, ResponseMessage, Message, };