import { DependencyTree } from "../utils/DependencyTree"; import { Entity } from "./base/Entity"; declare class MapSet extends Map> { add(key: K, item: V): Set; delete(key: K): boolean; } type TrackingContext = { visit(target: object, prop: string | symbol): void; }; export declare class Track { static Context: import("simple-async-context/build/lib/AsyncVariable").AsyncVariable; static tree: DependencyTree; static subscribe(entity: Entity, callback: (...args: any[]) => void): import("../utils/EventBus").Subscription; static onActivityChanged(entity: Entity, handler: (isActive: boolean) => void): import("../utils/EventBus").Subscription; static add(entity: Entity): void; static register(origin: Entity, dependency: Entity): void; static remove(entity: Entity): void; static isTracked(entity: Entity): boolean; static hasDependencies(entity: Entity): boolean; static invalidate(entity: Entity, force?: boolean): void; static getDependencies(entity: Entity): Set; static getDependents(entity: Entity): Set; static attributeChanges(entity: Entity, callback: (...args: any[]) => any): any; static visit(base: any, prop: any): void; static ressourcesByEntity: MapSet; static dispose(entity: Entity): void; private static createSelectorVisitor; } export {};