import type { BotCtxMethods, BotStateGlobal, BotStateStandAlone, DispatchFn, DynamicBlacklist, FlagsRuntime, ProviderEventTypes, TContext } from './../types'; import type { HostEventTypes } from './eventEmitterClass'; import { EventEmitterClass } from './eventEmitterClass'; import { GlobalState, SingleState } from '../context'; import type { MemoryDB } from '../db'; import type FlowClass from '../io/flowClass'; import type { ProviderClass } from '../provider/interface/provider'; import type { FlowDynamicMessage, GeneralArgs, MessageContextIncoming } from '../types'; import { BlackList, Queue } from '../utils'; declare class CoreClass

extends EventEmitterClass { flowClass: FlowClass; database: D; provider: P; queuePrincipal: Queue; stateHandler: SingleState; globalStateHandler: GlobalState; dynamicBlacklist: BlackList; generalArgs: GeneralArgs & { host?: string; }; /** * @description * - Setup flowClass * - Setup database * - Setup provider * - Setup generalArgs */ constructor(_flow: any, _database: D, _provider: P, _args: GeneralArgs); /** * Event handler */ listenerBusEvents: () => { event: string; func: ProviderEventTypes[keyof ProviderEventTypes]; }[]; private setHostData; handleMsg: (messageCtxInComing: MessageContextIncoming) => Promise<{ createCtxMessage: (payload: { body: any; answer: any; media: string; buttons: any[]; capture: boolean; delay: number; keyword: null; }, index?: number) => TContext; clearQueue: () => void; endFlow: (flag: FlagsRuntime, inRef: string | number) => (message?: any) => Promise; sendFlow: (messageToSend: any[], numberOrId: string, options?: { [key: string]: any; }) => Promise; continueFlow: (initRef?: any) => Promise; fallBack: (flag: FlagsRuntime) => (message?: any) => Promise; gotoFlow: (flag: FlagsRuntime) => (flowInstance: { toJson: () => any; ctx: { options: { delay: any; }; }; }, step?: number) => Promise; flowDynamic: (flag: FlagsRuntime, inRef: string, privateOptions: { [x: string]: any; omitEndFlow?: boolean; idleCtx?: boolean; }) => (listMessages?: string | string[] | FlowDynamicMessage[], options?: { continue: boolean; }) => Promise; resolveCbEveryCtx: (ctxMessage: TContext, options?: { omitEndFlow: boolean; idleCtx: boolean; triggerKey: boolean; }) => Promise; cbEveryCtx: (inRef: string, options?: { [key: string]: any; }) => Promise; }>; /** * Enviar mensaje con contexto atraves del proveedor de whatsapp * @param {*} numberOrId * @param {*} ctxMessage ver más en GLOSSARY.md * @returns */ sendProviderAndSave: (numberOrId: string, ctxMessage: TContext) => Promise; /** * Funcion dedicada a enviar el mensaje sin pasar por el flow * (dialogflow) * @param {*} messageToSend * @param {*} numberOrId * @returns */ sendFlowSimple: (messageToSend: any, numberOrId: any) => Promise<{ (): Promise; (value: T): Promise>; (value: T | PromiseLike): Promise>; }>; /** * */ httpServer: (port: number) => void; /** * Build context methods for HTTP handlers * @returns {BotCtxMethods} */ private buildCtxMethods; /** * * @param ctxPolka * @returns */ handleCtx: (ctxPolka: (bot: (Pick & { provider: P; blacklist: DynamicBlacklist; dispatch: DispatchFn; state: (number: string) => BotStateStandAlone; globalState: () => BotStateGlobal; ctxMethods: BotCtxMethods; emit: (eventName: string, args: Record & { from: string; }) => void; }) | undefined, req: any, res: any) => Promise) => (...args: any[]) => any; } export { CoreClass }; //# sourceMappingURL=coreClass.d.ts.map