import * as IR from "../../ir"; import { ActionChoice, ActivationLocation, CrochetRelation, CrochetValue } from "../intrinsics"; import { EventChoice } from "../simulation/contexts"; import { TraceEvent } from "./events"; declare type Subscriber = (event: TraceEvent) => void; export declare class CrochetTrace { private subscribers; subscribe(action: Subscriber): void; unsubscribe(subscriber: Subscriber): void; publish(event: TraceEvent): void; publish_fact(location: ActivationLocation, relation: CrochetRelation, values: CrochetValue[]): void; publish_forget(location: ActivationLocation, relation: CrochetRelation, values: CrochetValue[]): void; publish_turn(location: ActivationLocation, turn: CrochetValue): void; publish_action(location: ActivationLocation, choice: ActionChoice): void; publish_event(location: ActivationLocation, event: EventChoice): void; publish_goal_reached(location: ActivationLocation, goal: IR.SimulationGoal): void; publish_action_choice(location: ActivationLocation, turn: CrochetValue, choices: ActionChoice[]): void; } export {};