/**
 * Zenith Effect - Auto-Tracked Side Effect
 *
 * Effects are functions that automatically track their reactive dependencies
 * and re-run when those dependencies change. They are the bridge between
 * reactive state and side effects (DOM updates, logging, API calls, etc.)
 *
 * Features:
 * - Automatic dependency tracking (no dependency arrays)
 * - Runs immediately on creation
 * - Re-runs when dependencies change
 * - Supports cleanup functions
 * - Can be manually disposed
 *
 * @example
 * ```ts
 * const count = zenSignal(0)
 *
 * // Effect runs immediately, then re-runs when count changes
 * const dispose = zenEffect(() => {
 *   console.log('Count:', count())
 *
 *   // Optional cleanup - runs before next execution or on dispose
 *   return () => {
 *     console.log('Cleanup')
 *   }
 * })
 *
 * count(1) // Logs: "Cleanup", then "Count: 1"
 *
 * dispose() // Cleanup and stop watching
 * ```
 */
/**
 * Effect function type - can optionally return a cleanup function
 */
export type EffectFn = () => void | (() => void);
/**
 * Dispose function - call to stop the effect
 */
export type DisposeFn = () => void;
/**
 * Create an auto-tracked side effect
 *
 * @param fn - The effect function to run
 * @returns A dispose function to stop the effect
 */
export declare function zenEffect(fn: EffectFn): DisposeFn;
