import { Statement } from "../ir"; import { Bag } from "../../utils/bag"; import { Context } from "./event"; import { Goal } from "./goal"; import { Environment } from "../world"; import { Machine, State } from "../vm"; import { CrochetValue } from "../primitives"; import { FunctionLayer } from "../logic/layer"; export declare class Signal { readonly name: string; readonly parameters: string[]; readonly body: Statement[]; constructor(name: string, parameters: string[], body: Statement[]); get full_name(): string; evaluate(state: State, args: CrochetValue[]): Generator; } export declare class Simulation { readonly env: Environment; readonly actors: CrochetValue[]; readonly context: Context; readonly goal: Goal; readonly signals: Bag; private turn; private acted; private active; private rounds; constructor(env: Environment, actors: CrochetValue[], context: Context, goal: Goal, signals: Bag); run(state0: State): Machine; simulate_round(state: State): Machine; next_actor(state: State): Machine; pick_action(state: State, actor: CrochetValue): Machine; trigger_signal(state: State, name: string, args: CrochetValue[], default_handler: (state: State, ...args: CrochetValue[]) => Machine): Generator; get layer(): FunctionLayer; }