/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.dev/license */ import { ValueEqualityFn } from './equality'; import { ReactiveNode, ReactiveHookFn, SIGNAL } from './graph'; export interface SignalNode extends ReactiveNode { value: T; equal: ValueEqualityFn; } export type SignalBaseGetter = (() => T) & { readonly [SIGNAL]: unknown; }; export type SignalSetter = (newValue: T) => void; export type SignalUpdater = (updateFn: (value: T) => T) => void; export interface SignalGetter extends SignalBaseGetter { readonly [SIGNAL]: SignalNode; } /** * Creates a `Signal` getter, setter, and updater function. */ export declare function createSignal(initialValue: T, equal?: ValueEqualityFn): [SignalGetter, SignalSetter, SignalUpdater]; export declare function setPostSignalSetFn(fn: ReactiveHookFn | null): ReactiveHookFn | null; export declare function signalGetFn(node: SignalNode): T; export declare function signalSetFn(node: SignalNode, newValue: T): void; export declare function signalUpdateFn(node: SignalNode, updater: (value: T) => T): void; export declare function runPostSignalSetFn(node: SignalNode): void; export declare const SIGNAL_NODE: SignalNode;