import type { Entity } from "./types"; /** Minimal lookup surface needed to evaluate `parentHas`. */ export interface MatchHost { getEntity(entityId: number): Entity | undefined; getParent(entityId: number): number | null; } /** * Returns true when `entity` matches the static portion of a query shape: * has every `with` component, no `without` component, and (if `parentHas`) * a direct parent that has every `parentHas` component. Shared between * QueryCache (membership maintenance) and ReactiveQueryManager (enter/exit * dispatch) so both use the same predicate. */ export declare function entityMatchesShape(entity: Entity, withC: ReadonlyArray, withoutC: ReadonlyArray | undefined, parentHas: ReadonlyArray | undefined, host: MatchHost): boolean;