import Dialog from './index'; import { FlowIntentAction, FlowSessionAction } from '../types'; import { IntentMessage, SessionStartedMessage } from '../types/messages'; /** * Dialog flow session manager. */ export default class DialogFlow { private dialog; sessionId: string | null; private continuations; private continuationsListeners; private notRecognizedAction; private notRecognizedListener?; private ended; private slotFiller; /** * @internal **For internal use only** * @param dialog - Dialog instance. * @param sessionId - The session id to manage. * @param done - A callback to perform when the session ends. */ constructor(dialog: Dialog, sessionId: string | null, done: () => void); private reset; private cleanUpListeners; private continuation; private createListener; /** * @internal **For internal use only.** * * Starts a dialog flow. * * @param action - Action to perform on flow creation. * @param message - The message received on flow creation. * @param options - Internal options. */ start(action: FlowIntentAction | FlowSessionAction, message: IntentMessage | SessionStartedMessage, { sessionStart }?: { sessionStart?: boolean | undefined; }): Promise; private continue; private notRecognized; private end; }