import { ConversationState, TurnContext, Promiseable } from 'botbuilder'; import { Middleware, Store } from 'redux'; import { NlpResult, Ability, WolfState, IncomingSlotData, SetSlotDataFunctions } from '../types'; import { OuttakeResult } from '../stages/outtake'; /** * Create WolfStore * * @param middlewares * @param compose */ export declare const createWolfStore: (middlewares?: Middleware<{}, any, import("redux").Dispatch>[] | undefined, compose?: any) => (wolfStateFromConvoState: { [key: string]: any; } | null) => Store<{ messageData: any; slotStatus: any; slotData: any; abilityStatus: any; promptedSlotStack: any; focusedAbility: any; outputMessageQueue: any; filledSlotsOnCurrentTurn: any; defaultAbility: any; abilitiesCompleteOnCurrentTurn: any; runOnFillStack: any; }, import("redux").AnyAction>; /** * wolf middleware * * @return Promise<> */ export default function initializeWolfStoreMiddleware(conversationStore: ConversationState, userMessageData: (context: TurnContext) => Promiseable, getAbilitiesFunc: (context: TurnContext) => Promiseable, defaultAbility: string, storeCreator: (wolfStateFromConvoState: { [key: string]: any; } | null) => Store, getSlotDataFunc?: (context: TurnContext, setSlotFuncs: SetSlotDataFunctions) => Promiseable): { onTurn: (context: TurnContext, next: () => any) => Promise; }[]; export declare function getStore(context: TurnContext): Store; export declare function getMessages(context: TurnContext): OuttakeResult;