import { Ast } from 'thingtalk'; import * as C from '../ast_manip'; import ThingpediaLoader from '../load-thingpedia'; import { SlotBag } from '../slot_bag'; import { ContextInfo } from '../state_manip'; import type { ListProposal } from './list-proposal'; export interface Recommendation { ctx: ContextInfo; topResult: Ast.DialogueHistoryResultItem; info: SlotBag | null; action: Ast.Invocation | null; hasLearnMore: boolean; hasAnythingElse: boolean; } export declare function recommendationKeyFn(rec: Recommendation): { functionName: string; }; declare function makeActionRecommendation(ctx: ContextInfo, action: Ast.Invocation): Recommendation | null; declare function makeArgMinMaxRecommendation(ctx: ContextInfo, name: Ast.Value, base: Ast.Expression, param: C.ParamSlot, direction: 'asc' | 'desc'): Recommendation | null; declare function makeRecommendation(ctx: ContextInfo, name: Ast.Value): Recommendation | null; declare function makeThingpediaRecommendation(ctx: ContextInfo, info: SlotBag): Recommendation | null; declare function checkRecommendation(rec: Recommendation, info: SlotBag | null): Recommendation | null; declare function checkActionForRecommendation(rec: Recommendation, action: Ast.Invocation): { ctx: ContextInfo; topResult: Ast.DialogueHistoryResultItem; info: SlotBag | null; action: Ast.Invocation; hasLearnMore: boolean; hasAnythingElse: boolean; } | null; export declare function recommendationSetLearnMore(rec: Recommendation): { ctx: ContextInfo; topResult: Ast.DialogueHistoryResultItem; info: SlotBag | null; action: null; hasLearnMore: boolean; hasAnythingElse: boolean; }; declare function makeDisplayResult(ctx: ContextInfo, info: SlotBag): Recommendation | null; declare function combineDisplayResult(proposal: Recommendation, newInfo: SlotBag): Recommendation | null; declare function checkDisplayResult(proposal: Recommendation | null): Recommendation | null; declare function makeRecommendationReply(ctx: ContextInfo, proposal: Recommendation): import("../../sentence-generator/types").AgentReplyRecord | null; declare function makeDisplayResultReply(ctx: ContextInfo, proposal: Recommendation): import("../../sentence-generator/types").AgentReplyRecord; export declare function makeDisplayResultReplyFromList(ctx: ContextInfo, proposal: ListProposal): import("../../sentence-generator/types").AgentReplyRecord; declare function negativeRecommendationReply(ctx: ContextInfo, [preamble, request]: [Ast.Expression | null, Ast.Expression | null]): Ast.DialogueState | null; declare function positiveRecommendationReply(loader: ThingpediaLoader, ctx: ContextInfo, acceptedAction: Ast.Invocation | null, name: Ast.Value | null): Ast.DialogueState | null; declare function recommendationCancelReply(ctx: ContextInfo, valid: boolean): Ast.DialogueState | null; declare function recommendationLearnMoreReply(ctx: ContextInfo, name: Ast.Value | null): Ast.DialogueState | null; declare function repeatCommandReply(ctx: ContextInfo): Ast.DialogueState | null; export { makeActionRecommendation, makeArgMinMaxRecommendation, makeRecommendation, makeThingpediaRecommendation, checkRecommendation, checkActionForRecommendation, makeDisplayResult, combineDisplayResult, checkDisplayResult, makeRecommendationReply, makeDisplayResultReply, positiveRecommendationReply, negativeRecommendationReply, recommendationCancelReply, recommendationLearnMoreReply, repeatCommandReply, };