/** * Minimal framework-agnostic reactive primitives for the Cue SDK. * * No external dependencies. Angular consumers bridge to Angular signals via * `effect(() => { angularSig.set(sdkSig.get()); sdkSig.subscribe(...) })`. */ /** A reactive value that can be read and subscribed to. */ export interface ReadonlySignal { /** Returns the current value. */ get(): T; /** * Register a listener that is called whenever the value changes. * Returns an unsubscribe function. */ subscribe(listener: () => void): () => void; } /** A writable reactive state container. */ export declare class CueSignal implements ReadonlySignal { private _value; private _listeners; constructor(initial: T); get(): T; set(value: T): void; subscribe(listener: () => void): () => void; /** Returns a read-only view of this signal. */ asReadonly(): ReadonlySignal; } /** * Creates a derived read-only signal from one or more source signals. * The compute function is evaluated lazily and cached until a dependency changes. * * @param deps Source signals to watch. * @param compute Function that computes the derived value; must be pure. * @returns A `ReadonlySignal` with a `destroy()` method to stop tracking deps. */ export declare function cueComputed(deps: ReadonlySignal[], compute: () => T): ReadonlySignal & { destroy(): void; };