import { type Cell, lazyRawCellFor as internalLazyCellFor } from '../reactive';
export declare const tagFor: typeof internalLazyCellFor;
export declare function dirtyTagFor(obj: object, key: string | number | symbol): void;
export declare function tagMetaFor(obj: object): any;
export declare function isTracking(): boolean;
export declare function consumeTag(tag: Cell): void;
export type Getter<T, K extends keyof T> = (self: T) => T[K] | undefined;
export type Setter<T, K extends keyof T> = (self: T, value: T[K]) => void;
export declare function trackedData<T extends object, K extends keyof T>(key: K, initializer?: (this: T) => T[K]): {
    getter: Getter<T, K>;
    setter: Setter<T, K>;
};
export declare function beginTrackFrame(): void;
export declare function endTrackFrame(): void;
export declare function track(cb: () => unknown): unknown;
export declare function untrack(cb: () => unknown): unknown;
export declare function beginUntrackFrame(): void;
export declare function endUntrackFrame(): void;
export declare function valueForTag(tag: Cell): unknown;
export declare function validateTag(): boolean;
export declare const CURRENT_TAG: Cell<number>;
