import { AnyCell, tagOp } from './reactive';

export declare function effect(cb: () => void): () => void;
/**
 * Evaluates an opcode in an isolated tracking context.
 *
 * Combines trackingTransaction + inNewTrackingFrame + executeOpcode inline
 * to avoid allocating 2 closures per opcode evaluation. The semantics are:
 * 1. Ensure we're in a rendering transaction
 * 2. Save and null the current tracker (isolation)
 * 3. Execute the opcode
 * 4. Restore tracker and rendering state
 */
export declare function evaluateOpcode(tag: AnyCell, op: tagOp): void;
/**
 * Alias for evaluateOpcode - both functions now have identical behavior.
 * Kept for backwards compatibility.
 */
export declare const checkOpcode: typeof evaluateOpcode;
export declare function opcodeFor(tag: AnyCell, op: tagOp): () => void;
