import { Ast, SchemaRetriever, Runtime } from 'thingtalk'; import { SimulationDatabase } from './types'; interface SimulatorOptions { locale: string; timezone: string | undefined; schemaRetriever: SchemaRetriever; rng: () => number; database?: SimulationDatabase; overrides?: Map; } declare type RawExecutionResult = Array<[string, Record]>; declare type ExecutionResult = [Ast.DialogueHistoryResultList, RawExecutionResult]; export declare class ThingTalkSimulatorState { private _locale; private _timezone; private _schemas; private _rng; private _database; private _overrides; private _execEnv; constructor(options: SimulatorOptions); compile(stmt: Ast.ExpressionStatement, cache: Map): Promise; simulate(stmt: Ast.ExpressionStatement, compiled: Runtime.CompiledProgram): Promise; private _inferType; private _outputTypeToSchema; private _mapResult; private _mapCompound; } /** * Simulate the execution of ThingTalk code. */ export default class ThingTalkStatementSimulator { private _options; private cache; constructor(options: SimulatorOptions); executeStatement(stmt: Ast.ExpressionStatement, execState: ThingTalkSimulatorState): Promise<[Ast.DialogueHistoryResultList, RawExecutionResult, undefined, ThingTalkSimulatorState, Ast.AnnotationSpec]>; } export {};