import { b as SignalOptions } from './signal-B5ZKb9uL.js';

/**
 * Forma Reactive - TC39 Signals Compatibility Layer
 *
 * Optional class-based API matching the TC39 Signals proposal (Stage 1).
 * Not included in main bundle — import from '@getforma/core/tc39' subpath.
 *
 * When the TC39 proposal advances, these classes can be replaced with
 * native Signal.State and Signal.Computed.
 *
 * @see https://github.com/tc39/proposal-signals
 */

/**
 * TC39-compatible reactive state container.
 * Equivalent to `Signal.State` in the TC39 proposal.
 *
 * ```ts
 * const count = new State(0);
 * console.log(count.get()); // 0
 * count.set(1);
 * ```
 */
declare class State<T> {
    private _get;
    private _set;
    constructor(initialValue: T, options?: SignalOptions<T>);
    get(): T;
    set(value: T): void;
}
/**
 * TC39-compatible computed value.
 * Equivalent to `Signal.Computed` in the TC39 proposal.
 *
 * ```ts
 * const count = new State(0);
 * const doubled = new Computed(() => count.get() * 2);
 * console.log(doubled.get()); // 0
 * count.set(5);
 * console.log(doubled.get()); // 10
 * ```
 */
declare class Computed<T> {
    private _get;
    constructor(fn: () => T);
    get(): T;
}

export { Computed, State };
