export type GOAPValue = string | number | boolean | null; export type GOAPStateShape = Record; export interface GOAPActionOptions { readonly name: string; readonly cost?: number; readonly preconditions?: GOAPStateShape; readonly effects: GOAPStateShape; readonly enabled?: boolean; } export interface GOAPPlannerOptions { readonly maxIterations?: number; readonly maxPlanLength?: number; } export interface GOAPPlan { readonly valid: boolean; readonly actions: readonly string[]; readonly cost: number; readonly nodesExplored: number; readonly finalState: GOAPStateShape; } export declare class WorldState { private readonly values; constructor(initial?: GOAPStateShape); static from(initial: GOAPStateShape): WorldState; set(key: string, value: GOAPValue): void; get(key: string): GOAPValue | undefined; satisfies(goal: WorldState): boolean; matches(shape: GOAPStateShape): boolean; apply(shape: GOAPStateShape): WorldState; clone(): WorldState; entries(): readonly (readonly [string, GOAPValue])[]; toObject(): GOAPStateShape; key(): string; } export declare class GOAPAction { readonly name: string; readonly cost: number; readonly preconditions: GOAPStateShape; readonly effects: GOAPStateShape; enabled: boolean; constructor(options: GOAPActionOptions); canRun(state: WorldState): boolean; apply(state: WorldState): WorldState; } export declare class GOAPPlanner { private readonly maxIterations; private readonly maxPlanLength; constructor(options?: GOAPPlannerOptions); plan(current: WorldState, goal: WorldState, actions: readonly GOAPAction[]): GOAPPlan; } //# sourceMappingURL=GOAP.d.ts.map