import { Ast } from 'thingtalk';
import type Engine from '../engine';
declare type RawExecutionResult = Array<[string, Record<string, unknown>]>;
/**
 * Run the dialogue, executing ThingTalk and invoking the policy at the
 * right time.
 */
export default class InferenceStatementExecutor {
    private _engine;
    private _schemas;
    constructor(engine: Engine);
    private _inferType;
    private _outputTypeToSchema;
    private _mapResult;
    private _mapCompound;
    private _iterateResults;
    executeStatement(stmt: Ast.ExpressionStatement): Promise<[Ast.DialogueHistoryResultList, RawExecutionResult, undefined]>;
}
export {};
