import type { Blackboard } from "./BehaviorTree"; export type UtilityCurve = "linear" | "inverse" | "quadratic" | "cubic" | "boolean" | "logistic"; export type UtilityScoring = "multiply" | "average" | "min" | "max" | "sum"; export interface UtilityContext { readonly blackboard?: Blackboard; readonly values?: Record; } export interface UtilityConsiderationOptions { readonly name: string; readonly input: (context: UtilityContext) => number | boolean; readonly curve?: UtilityCurve; readonly weight?: number; readonly threshold?: number; readonly slope?: number; } export interface UtilityActionOptions { readonly name: string; readonly considerations: readonly UtilityConsideration[]; readonly scoring?: UtilityScoring; readonly baseScore?: number; readonly enabled?: boolean; } export interface UtilityActionScore { readonly action: string; readonly score: number; readonly considerationScores: Record; } export declare class UtilityConsideration { readonly name: string; readonly curve: UtilityCurve; readonly weight: number; readonly threshold: number; readonly slope: number; private readonly input; constructor(options: UtilityConsiderationOptions); evaluate(context: UtilityContext): number; } export declare class UtilityAction { readonly name: string; readonly considerations: readonly UtilityConsideration[]; readonly scoring: UtilityScoring; readonly baseScore: number; enabled: boolean; constructor(options: UtilityActionOptions); score(context: UtilityContext): UtilityActionScore; } export declare class UtilityAI { private readonly actions; addAction(action: UtilityAction): void; removeAction(name: string): boolean; setActionEnabled(name: string, enabled: boolean): void; evaluate(context: UtilityContext): readonly UtilityActionScore[]; select(context: UtilityContext): UtilityActionScore | undefined; } //# sourceMappingURL=UtilityAI.d.ts.map