import { SYMBOL_OBSERVABLE, SYMBOL_OBSERVABLE_WRITABLE } from '../symbols.js'; import type { IObservable, Observable, ObservableReadonly } from '../types.js'; import type { Stack } from '../methods/debugger.js'; declare const frozen: (value: T) => ObservableReadonly; declare const readable: (value: IObservable, stack?: Stack) => ObservableReadonly; /** * Creates a writable observable function with enhanced type information. * The returned function can be used as both a getter and setter for the observable value. * * @param value - The observable instance to wrap * @param stack - Optional debugging stack trace * @returns A function that acts as both getter and setter with proper type annotations */ declare const writable: (value: IObservable, stack?: Stack) => Observable & { [SYMBOL_OBSERVABLE]: true; [SYMBOL_OBSERVABLE_WRITABLE]: IObservable; }; export { frozen, readable, writable };