export type Cleanup = () => void; export type Accessor = { (): T; (value: T | ((current: T) => T)): T; }; export type Reader = () => T; type Subscriber = ReactiveComputation; interface Dependency { subscribers: Set; } declare class ReactiveComputation { private readonly fn; private readonly ownerCleanup; private deps; private queued; private disposed; constructor(fn: () => void, ownerCleanup?: Cleanup[]); run(): void; track(dep: Dependency): void; notify(): void; dispose(): void; private cleanupDependencies; } declare class ReactiveValue implements Dependency { private value; subscribers: Set; constructor(value: T); get(): T; set(next: T | ((current: T) => T)): T; flush(): void; } export declare function untrack(fn: () => T): T; export declare function createCell(value: T): ReactiveValue; export declare function $(initial: T): Accessor; export declare function watch(fn: () => void, cleanupBucket?: Cleanup[]): Cleanup; export declare function derive(fn: () => T): Reader; export declare function trackProperty(target: object, key: PropertyKey): void; export declare function triggerProperty(target: object, key: PropertyKey): void; export declare function setAutoCleanupRegistrar(registrar: ((cleanup: Cleanup) => void) | null): void; export {}; //# sourceMappingURL=index.d.ts.map