import { t } from "@rbxts/t"; type Listener = (isQualified: boolean, instance: Instance) => void; export interface Criteria { tag?: string; typeGuard?: t.check; typeGuardPoll?: boolean; typeGuardPollAtomic?: boolean; dependencies?: ComponentTracker[]; warningTimeout?: number; } export declare class ComponentTracker { private identifier; private criteria; private instances; constructor(identifier: string, criteria: Criteria); private getInstanceTracker; private updateListeners; private setupTracker; private testInstance; /** * Sets whether this instance has the required tag. * This is called by Components for efficiency. */ setHasTag(instance: Instance, hasTag: boolean): void; checkInstance(instance: Instance): boolean; isTracked(instance: Instance): boolean; trackInstance(instance: Instance, listener: Listener): void; untrackInstance(instance: Instance, listener: Listener): void; } export {};