import { EventEmitter } from 'events'; import { JsonObject } from 'type-fest'; import Session from '../session/Session'; import { Event } from '../context/Event'; import { RequestContext } from '../types'; export interface Connector { client?: C; platform: string; getUniqueSessionKey( bodyOrEvent: B | Event, requestContext?: RequestContext ): string | null; updateSession(session: Session, bodyOrEvent: B | Event): Promise; mapRequestToEvents(body: B): Event[]; createContext(params: { event: Event; session?: Session | null; initialState?: JsonObject | null; requestContext?: RequestContext; emitter?: EventEmitter | null; }): any; }