signal.d.d.ts 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. /**
  2. * @license Angular v20.1.0
  3. * (c) 2010-2025 Google LLC. https://angular.io/
  4. * License: MIT
  5. */
  6. import { ReactiveNode, ValueEqualityFn, SIGNAL, ReactiveHookFn } from './graph.d.js';
  7. interface SignalNode<T> extends ReactiveNode {
  8. value: T;
  9. equal: ValueEqualityFn<T>;
  10. }
  11. type SignalBaseGetter<T> = (() => T) & {
  12. readonly [SIGNAL]: unknown;
  13. };
  14. type SignalSetter<T> = (newValue: T) => void;
  15. type SignalUpdater<T> = (updateFn: (value: T) => T) => void;
  16. interface SignalGetter<T> extends SignalBaseGetter<T> {
  17. readonly [SIGNAL]: SignalNode<T>;
  18. }
  19. /**
  20. * Creates a `Signal` getter, setter, and updater function.
  21. */
  22. declare function createSignal<T>(initialValue: T, equal?: ValueEqualityFn<T>): [SignalGetter<T>, SignalSetter<T>, SignalUpdater<T>];
  23. declare function setPostSignalSetFn(fn: ReactiveHookFn | null): ReactiveHookFn | null;
  24. declare function signalGetFn<T>(node: SignalNode<T>): T;
  25. declare function signalSetFn<T>(node: SignalNode<T>, newValue: T): void;
  26. declare function signalUpdateFn<T>(node: SignalNode<T>, updater: (value: T) => T): void;
  27. declare function runPostSignalSetFn<T>(node: SignalNode<T>): void;
  28. declare const SIGNAL_NODE: SignalNode<unknown>;
  29. export { SIGNAL_NODE, createSignal, runPostSignalSetFn, setPostSignalSetFn, signalGetFn, signalSetFn, signalUpdateFn };
  30. export type { SignalGetter, SignalNode };