/** * Conversation state managed by Botbuilder */ export interface ConvoState { [key: string]: any; } /** * Wolf's state object that facilitates management of state sytem. * * _User should not touch this object._ */ export interface WolfState { messageData: MessageData; slotStatus: SlotStatus[]; slotData: SlotData[]; abilityStatus: AbilityStatus[]; promptedSlotStack: PromptSlot[]; focusedAbility: string | null; outputMessageQueue: OutputMessageItem[]; filledSlotsOnCurrentTurn: SlotId[]; abilitiesCompleteOnCurrentTurn: string[]; defaultAbility: string | null; runOnFillStack: OnFillStackItem[]; } export interface PromptSlot extends SlotId { turnCount: number; reasonAdded: PromptSlotReason; prompted: boolean; } export declare enum PromptSlotReason { query = 0, retry = 1, confirmation = 2 } export interface SlotId { slotName: string; abilityName: string; } export interface MessageData { rawText: string; intent: string | null; entities: Entity[]; } export interface OutputMessageItem { message: string; type: OutputMessageType; slotName?: string; abilityName?: string; } export declare enum OutputMessageType { validateReason = 0, retryMessage = 1, queryMessage = 2, slotFillMessage = 3, nextAbilityMessage = 4, abilityCompleteMessage = 5 } export interface SlotStatus extends SlotId { isEnabled: boolean; requestingSlot?: string; confirmationSlot?: string; isDone: boolean; } export interface SlotData extends SlotId { isConfirmed?: boolean; value: any; } export interface AbilityStatus { abilityName: string; isCompleted: boolean; } export interface ValidateResult { isValid: boolean; reason: string | null; } export interface NlpResult { message: string; intent: string | null; entities: NlpEntity[]; } export interface NlpEntity { value: any; text: string; name: string; } export interface Entity extends NlpEntity { } export interface OnFillStackItem extends SlotId { value?: any; message: string; }