import { type TraceFunction } from './perception.js'; import type { Entity } from '../entities/entity.js'; import type { EntitySystem } from '../entities/system.js'; export { rangeTo as range, RangeCategory as Range } from './perception.js'; export interface TargetAwarenessState { timeSeconds: number; frameNumber: number; sightEntity: Entity | null; sightEntityFrame: number; soundEntity: Entity | null; soundEntityFrame: number; sound2Entity: Entity | null; sound2EntityFrame: number; sightClient: Entity | null; } export interface HearabilityHooks { canHear?: (self: Entity, other: Entity) => boolean; areasConnected?: (self: Entity, other: Entity) => boolean; } export declare function huntTarget(self: Entity, level: TargetAwarenessState, context: EntitySystem): void; export interface FoundTargetOptions { pickTarget?: (name: string) => Entity | null; } export declare function foundTarget(self: Entity, level: TargetAwarenessState, context: EntitySystem, options?: FoundTargetOptions): void; export declare function AI_GetSightClient(self: Entity, context: EntitySystem, trace: TraceFunction): Entity | null; export declare function findTarget(self: Entity, level: TargetAwarenessState, context: EntitySystem, trace: TraceFunction, hearability?: HearabilityHooks): boolean; export declare function ai_checkattack(self: Entity, dist: number, context: EntitySystem): boolean; export declare function findCover(self: Entity, context: EntitySystem): boolean; //# sourceMappingURL=targeting.d.ts.map