import * as IR from "../../ir"; import { ActionChoice, ActivationLocation, CrochetRelation, CrochetValue, RelationTag } from "../intrinsics"; import { EventChoice } from "../simulation/contexts"; export declare enum TraceTag { FACT = 0, FORGET = 1, SIMULATION_TURN = 2, SIMULATION_EVENT = 3, SIMULATION_ACTION = 4, SIMULATION_GOAL_REACHED = 5, SIMULATION_ACTION_CHOICE = 6, LOG = 7 } export declare type TraceEvent = TEFact | TEForget | TELog | TEAction | TEEvent | TETurn | TEGoalReached | TEActionChoice; export declare abstract class BaseTraceEvent { abstract tag: TraceTag; } export declare class TEFact extends BaseTraceEvent { readonly location: ActivationLocation; readonly relation: CrochetRelation; readonly values: CrochetValue[]; readonly tag = TraceTag.FACT; constructor(location: ActivationLocation, relation: CrochetRelation, values: CrochetValue[]); } export declare class TEForget extends BaseTraceEvent { readonly location: ActivationLocation; readonly relation: CrochetRelation; readonly values: CrochetValue[]; readonly tag = TraceTag.FORGET; constructor(location: ActivationLocation, relation: CrochetRelation, values: CrochetValue[]); } export declare class TELog extends BaseTraceEvent { readonly category: string; readonly log_tag: string; readonly location: ActivationLocation; readonly value: CrochetValue | string; readonly tag = TraceTag.LOG; constructor(category: string, log_tag: string, location: ActivationLocation, value: CrochetValue | string); } export declare class TEAction extends BaseTraceEvent { readonly location: ActivationLocation; readonly choice: ActionChoice; readonly tag = TraceTag.SIMULATION_ACTION; constructor(location: ActivationLocation, choice: ActionChoice); } export declare class TEEvent extends BaseTraceEvent { readonly location: ActivationLocation; readonly event: EventChoice; readonly tag = TraceTag.SIMULATION_EVENT; constructor(location: ActivationLocation, event: EventChoice); } export declare class TETurn extends BaseTraceEvent { readonly location: ActivationLocation; readonly turn: CrochetValue; readonly tag = TraceTag.SIMULATION_TURN; constructor(location: ActivationLocation, turn: CrochetValue); } export declare class TEGoalReached extends BaseTraceEvent { readonly location: ActivationLocation; readonly goal: IR.SimulationGoal; readonly tag = TraceTag.SIMULATION_GOAL_REACHED; constructor(location: ActivationLocation, goal: IR.SimulationGoal); } export declare class TEActionChoice extends BaseTraceEvent { readonly location: ActivationLocation; readonly turn: CrochetValue; readonly choices: ActionChoice[]; readonly tag = TraceTag.SIMULATION_ACTION_CHOICE; constructor(location: ActivationLocation, turn: CrochetValue, choices: ActionChoice[]); }