UNPKG

bottender

Version:

A framework for building conversational user interfaces.

44 lines 1.89 kB
/// <reference types="node" /> import { EventEmitter } from 'events'; import { JsonObject } from 'type-fest'; import Context from '../context/Context'; import SessionStore from '../session/SessionStore'; import { Action, Client, Plugin, RequestContext } from '../types'; import { Event } from '../context/Event'; import { Connector } from './Connector'; declare type Builder<C extends Context> = { build: () => Action<C, any>; }; export declare function run<C extends Context>(action: Action<C, any>): Action<C, any>; declare type RequestHandler<B> = (body: B, requestContext?: RequestContext) => void | Promise<void>; export declare type OnRequest = (body: JsonObject, requestContext?: RequestContext) => void; export default class Bot<B extends JsonObject, C extends Client, E extends Event, Ctx extends Context<C, E>> { _sessions: SessionStore; _initialized: boolean; _connector: Connector<B, C>; _handler: Action<Ctx, any> | null; _errorHandler: Action<Ctx, any> | null; _initialState: JsonObject; _plugins: Function[]; _sync: boolean; _emitter: EventEmitter; _onRequest: OnRequest | undefined; constructor({ connector, sessionStore, sync, onRequest, }: { connector: Connector<B, C>; sessionStore?: SessionStore; sync?: boolean; onRequest?: OnRequest; }); get connector(): Connector<B, C>; get sessions(): SessionStore; get handler(): Action<Ctx, any> | null; get emitter(): EventEmitter; onEvent(handler: Action<Ctx, any> | Builder<Ctx>): Bot<B, C, E, Ctx>; onError(handler: Action<Ctx, any> | Builder<Ctx>): Bot<B, C, E, Ctx>; setInitialState(initialState: JsonObject): Bot<B, C, E, Ctx>; use(plugin: Plugin<Ctx>): Bot<B, C, E, Ctx>; initSessionStore(): Promise<void>; createRequestHandler(): RequestHandler<B>; } export {}; //# sourceMappingURL=Bot.d.ts.map