/** * @license Angular v20.3.11 * (c) 2010-2025 Google LLC. https://angular.dev/ * License: MIT */ import { ReactiveNode, ValueEqualityFn, SIGNAL, ReactiveHookFn } from './formatter.d.js'; interface SignalNode extends ReactiveNode { value: T; equal: ValueEqualityFn; } type SignalBaseGetter = (() => T) & { readonly [SIGNAL]: unknown; }; type SignalSetter = (newValue: T) => void; type SignalUpdater = (updateFn: (value: T) => T) => void; interface SignalGetter extends SignalBaseGetter { readonly [SIGNAL]: SignalNode; } /** * Creates a `Signal` getter, setter, and updater function. */ declare function createSignal(initialValue: T, equal?: ValueEqualityFn): [SignalGetter, SignalSetter, SignalUpdater]; declare function setPostSignalSetFn(fn: ReactiveHookFn | null): ReactiveHookFn | null; declare function signalGetFn(node: SignalNode): T; declare function signalSetFn(node: SignalNode, newValue: T): void; declare function signalUpdateFn(node: SignalNode, updater: (value: T) => T): void; declare function runPostSignalSetFn(node: SignalNode): void; declare const SIGNAL_NODE: SignalNode; interface BaseEffectNode extends ReactiveNode { fn: () => void; destroy(): void; cleanup(): void; run(): void; } declare const BASE_EFFECT_NODE: Omit; declare function runEffect(node: BaseEffectNode): void; export { BASE_EFFECT_NODE, SIGNAL_NODE, createSignal, runEffect, runPostSignalSetFn, setPostSignalSetFn, signalGetFn, signalSetFn, signalUpdateFn }; export type { BaseEffectNode, SignalGetter, SignalNode };