import type { EntityPosition } from "../scene/entityStore.js"; export interface RevealHit { instanceId: string; distance: number; tags: readonly string[]; } export interface RevealQueryOptions { resolvePosition: (instanceId: string) => EntityPosition | undefined; resolveTags: (instanceId: string) => readonly string[]; candidates: () => string[]; } export interface RevealQuery { inRadius(center: EntityPosition | string, radius: number, tags: readonly string[]): RevealHit[]; } /** * `inRadius` already ignores occlusion; combat's AoE resolution is what layers a * line-of-sight filter on top of it (see `effect({ at, radius, los })`). This is * the same unfiltered radius query, scoped to catalog-declared tags and shaped * for a vision readout (Dark Sight / detective-vision reveal) instead of damage * resolution — it never consults an occluder, by design. * @internal */ export declare function createRevealQuery(options: RevealQueryOptions): RevealQuery;