import type { Vec3 } from '@quake2ts/shared'; import type { Entity } from '../entities/entity.js'; export declare enum RangeCategory { Melee = "melee", Near = "near", Mid = "mid", Far = "far" } export interface TraceResult { readonly fraction: number; readonly ent: Entity | null; } export type TraceFunction = (start: Vec3, mins: Vec3 | null, maxs: Vec3 | null, end: Vec3, passent: Entity | null, contentmask: number) => TraceResult; export declare function rangeTo(self: Entity, other: Entity): number; export declare function classifyRange(distance: number): RangeCategory; export declare function infront(self: Entity, other: Entity): boolean; export interface VisibleOptions { throughGlass?: boolean; timeSeconds?: number; random?: () => number; } export declare function visible(self: Entity, other: Entity, trace: TraceFunction, options?: VisibleOptions): boolean; //# sourceMappingURL=perception.d.ts.map