import type { Entity } from '../Entity'; import type { Scene } from '../Scene'; import type { QueryComponent, QueryKey } from './Query'; import { Query } from './Query'; export declare type QueryReacts = 'added' | 'removed' | 'modified'; export declare type QueriesObject = { [x: string]: { components: QueryComponent[]; added?: boolean; removed?: boolean; modified?: boolean; }; }; export declare type QueryResults = { [x: string]: Query; }; export declare class QueryManager { private readonly _scene; private readonly _queries; constructor(world: Scene); /** * Adds/removes an entity from a query after a component has been added * @param entity - entity to be added/removed */ onEntityComponentAdded(entity: Entity): void; /** * Adds/removes an entity from a query after a component has been removed * @param entity - entity to be added/removed */ onEntityComponentRemoved(entity: Entity): void; /** * Adds an entity to any matching queries * @param entity - entity to be added */ onEntityAdded(entity: Entity): void; /** * Removed an entity from any matching queries * @param entity - entity to be removed */ onEntityRemoved(entity: Entity): void; /** * Returns a query based off of the components provided * @param components - components to check * @param name - name of the query */ getQuery(components: QueryComponent[], name: string): Query; /** * Generate a query key using component ids * @param components - components to generate key */ generateQueryKey(components: QueryComponent[]): QueryKey; } //# sourceMappingURL=QueryManager.d.ts.map