UNPKG

wa-chat-server

Version:

Watson Assistant powered chat server

52 lines (51 loc) 2.86 kB
import express from 'express'; import { IConversationAPI } from './interface/IConversationAPI'; import { IWAChatServer } from './interface/IWAChatServer'; import { IWAChatServerAdapter } from './interface/IWAChatServerAdapter'; import { IWAChatServerAdapterConstructor } from './interface/IWAChatServerAdapterConstructor'; import { IWAChatServerConfig } from './interface/IWAChatServerConfig'; import { IGetResponse } from './interface/IGetResponse'; import { ServicesRegistrator } from './class/ServicesRegistrator'; import { ISession } from './interface/ISession'; import { ConversationService } from './class/ConversationService/ConversationService'; import { ConversationAssistants } from './class/ConversationAssistants'; import * as Types from './types'; declare class WAChatServer implements IWAChatServer { config: IWAChatServerConfig; router: express.Application; logger: Types.ILogger; servicesRegistrator: ServicesRegistrator; adapters: Map<string, IWAChatServerAdapter>; adapterConfig: Record<string, any>; sessionStorageFactories: Map<string, Types.ISessionStorageFactory>; sessionStorageDefaultFactory: string; conversationAdapter: IConversationAPI; conversationAdapters: ConversationAssistants; constructor(config: IWAChatServerConfig); private separateAppAndAdapterConfig; private compileConfig; private initRouter; private setRoutes; private getPort; addAdapter(name: string, AdapterClass: IWAChatServerAdapterConstructor): void; serve(): void; getRouter(): express.Application; getServicesRegistrator(): ServicesRegistrator; getLogger(): Types.ILogger; getConversationAdapter(): IConversationAPI; /** * Add specific session storage factory implementation. Can be chosen from the **wa-chat-server** library or custom * implementation can be added which implements interface **Types.ISessionStorageFactory**. * @param storageName can be used to specify storage when starting session using **storageName** value in configOverride * @param storageFactory session storage factory implementation * @param setDefault specify if the storage should be used by default (without explicitly specifying **storageName**) * *DISCLAIMER: first custom factory added will be set as default regardless of this parameter* * @returns */ addSessionStorageFactory(storageName: string, storageFactory: Types.ISessionStorageFactory, setDefault?: boolean): void; startSession(sessionId: string, configOverride?: Types.ISessionConfig): Promise<ISession>; endSession(session: ISession): Promise<void>; getResponse(sessionId: string, watsonRequest: Record<string, any>, // AssistantV1.MessageRequest configOverride?: Types.ISessionConfig): Promise<IGetResponse>; } export { WAChatServer, Types, ConversationService };