type ObjectFromList<T extends readonly string[]> = {
    [K in T extends readonly (infer U)[] ? U : never]: boolean;
};
/**
 * Generic Tracker which sets or resets provided flags
 */
export declare class Tracker<TrackedItemsList extends readonly string[]> {
    private trackedItems;
    constructor(trackedItemsList: TrackedItemsList);
    getTrackedItems(): ObjectFromList<TrackedItemsList>;
    isTracked(key: keyof ObjectFromList<TrackedItemsList>): boolean;
    track(key: keyof ObjectFromList<TrackedItemsList>): void;
    untrack(key: keyof ObjectFromList<TrackedItemsList>): void;
    trackAll(): void;
    untrackAll(): void;
    allTracked(): boolean;
    anyTracked(): boolean;
    noneTracked(): boolean;
    onTrackingChange(): void;
    private setAllKeys;
}
export {};
