/// import { Either } from "fp-ts/Either"; import { ArgsToData, ArgTypes, QueryResults } from "./arg_types"; import { Entity } from "./entity"; import { EntityMapWithEvents } from "./entity_map"; import { EcsEvent } from "./events"; import { Query } from "./query"; import { ResourceMapWrapped } from "./resource_map"; import { DefaultMap } from "./utils"; import { World } from "./world"; interface QueryCacheEntry { readonly valid: boolean; unsubscribe: () => void; getResultForEntity(entity: Entity, event?: readonly [EcsEvent, unknown]): Either>; getResult(args?: { entities?: Iterable; event?: readonly [EcsEvent, unknown]; }): QueryResults>; } declare type QueryArgsList = readonly ArgTypes[]; export declare class QueryCache extends DefaultMap { constructor(entities: EntityMapWithEvents, resources: ResourceMapWrapped, getArg: World['getArg']); get(query: Query): QueryCacheEntry; set(query: Query, entry: QueryCacheEntry): this; has(query: Query): boolean; delete(query: Query): boolean; } export {};