/**
 * Constants and global state for reactivity system
 */
export declare let currentEffect: EffectFunction | null;
export declare let currentContext: ReactiveContext | null;
export declare let microtaskPending: boolean;
export declare let globalEffectId: number;
export declare const CLEAN = 0;
export declare const STALE = 1;
export declare const PENDING = 2;
export declare let execCount: number;
export declare const defaultEquals: (value1: any, value2: any) => boolean;
export interface EffectFunction {
    (): void;
    id: number;
    disposed: boolean;
    running: boolean;
    state: number;
    cleanupFns: (() => void)[];
    sources: SignalNode[];
    sourceSlots: number[];
    parentContext: ReactiveContext | null;
    dispose: () => void;
    updatedAt: number | null;
}
export interface SignalNode {
    value: any;
    subscribers: Set<EffectFunction>;
    observers: EffectFunction[] | null;
    observerSlots: number[] | null;
    id?: string;
}
export interface ReactiveContext {
    effects: Set<EffectFunction>;
}
export declare function setCurrentEffect(value: EffectFunction | null): EffectFunction | null;
export declare function setCurrentContext(value: ReactiveContext | null): ReactiveContext | null;
export declare function incrementEffectId(): number;
export declare function setMicrotaskPending(value: boolean): boolean;
export declare function incrementExecCount(): number;
export declare function getExecCount(): number;
