import { Predicate } from "../logic"; import { CrochetValue } from "../primitives"; import { State } from "../vm"; import { Context } from "./event"; export declare type Goal = ActionQuiescence | EventQuiescence | TotalQuiescence | CustomGoal; interface IGoal { reset(): void; tick(actor: CrochetValue, state: State, context: Context): void; reached(round_ended: boolean): boolean; } export declare class ActionQuiescence implements IGoal { private _reached; reached(round_ended: boolean): boolean; reset(): void; tick(actor: CrochetValue, state: State, context: Context): void; } export declare class EventQuiescence implements IGoal { private _reached; reached(round_ended: boolean): boolean; reset(): void; tick(actor: CrochetValue, state: State, context: Context): void; } export declare class TotalQuiescence implements IGoal { private event_goal; private action_goal; reached(round_ended: boolean): boolean; reset(): void; tick(actor: CrochetValue, state: State, context: Context): void; } export declare class CustomGoal implements IGoal { readonly predicate: Predicate; private _reached; constructor(predicate: Predicate); reached(round_ended: boolean): boolean; reset(): void; tick(actor: CrochetValue, state: State, context: Context): void; } export {};