import { Application } from 'express';
import { ILogger } from './ILogger';
import { IWAChatServerAdapterConstructor } from './IWAChatServerAdapterConstructor';
import { IGetResponse } from './IGetResponse';
import { ISession } from './ISession';
import { ISessionStorageFactory } from './ISessionStorageFactory';
import { ISessionConfig } from './ISessionConfig';
export interface IWAChatServer {
    addAdapter(name: string, AdapterClass: IWAChatServerAdapterConstructor): void;
    serve(): void;
    getRouter(): Application;
    getLogger(): ILogger;
    addSessionStorageFactory(storageName: string, storageFactory: ISessionStorageFactory, setDefault?: boolean): void;
    startSession(sessionId: string, configOverride?: ISessionConfig): Promise<ISession>;
    endSession(session: ISession): Promise<void>;
    getResponse(sessionId: string, watsonRequest: Record<string, any>, // AssistantV1.MessageRequest
    configOverride?: ISessionConfig): Promise<IGetResponse>;
}
