/**
 * Trellis Reactive Primitives
 *
 * Framework-agnostic signals for building reactive UIs on top of
 * TrellisClient. Inspired by Svelte 5 runes and the react-runes
 * experiment, but stripped of any framework dependency.
 *
 * Use with React via the `react-runes` $ hook, or with Svelte 5
 * by wrapping signals in $state/$derived.
 */
/** Simple mutable reactive value. */
export declare class Signal<T> {
    private _value;
    private _subs;
    constructor(initial: T);
    get value(): T;
    set value(v: T);
    /** Subscribe to changes. Immediately called with current value. */
    subscribe(fn: (v: T) => void): () => void;
    /** Read without tracking. */
    peek(): T;
    /** Whether any subscriber is registered. */
    hasSubscribers(): boolean;
}
/** Throttled signal that batches rapid updates via requestAnimationFrame. */
export declare class BatchSignal<T> extends Signal<T> {
    private _raf;
    constructor(initial: T);
    set value(v: T);
}
//# sourceMappingURL=reactive.d.ts.map