wa-chat-server
Version:
Watson Assistant powered chat server
52 lines (51 loc) • 2.86 kB
TypeScript
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 };