import { Signal, Injector, EffectRef, WritableSignal, Type } from '@angular/core'; type NonRecord = Iterable | WeakSet | WeakMap | Promise | Date | Error | RegExp | ArrayBuffer | DataView | Function; type Prettify = { [K in keyof T]: T[K]; } & {}; type IsRecord = T extends object ? T extends NonRecord ? false : true : false; type IsUnknownRecord = keyof T extends never ? true : string extends keyof T ? true : symbol extends keyof T ? true : number extends keyof T ? true : false; type IsKnownRecord = IsRecord extends true ? IsUnknownRecord extends true ? false : true : false; type OmitPrivate = { [K in keyof T as K extends `_${string}` ? never : K]: T[K]; }; type DeepSignal = Signal & (IsKnownRecord extends true ? Readonly<{ [K in keyof T]: IsKnownRecord extends true ? DeepSignal : Signal; }> : unknown); /** * @description * * Creates a computed signal with deeply nested signals for each property when * the result is an object literal. * * @usageNotes * * ```ts * import { signal } from '@angular/core'; * import { deepComputed } from '@ngrx/signals'; * * const limit = signal(10); * const offset = signal(0); * * const pagination = deepComputed(() => ({ * currentPage: Math.floor(offset() / limit()) + 1, * pageSize: limit(), * })); * * console.log(pagination()); // { currentPage: 1, pageSize: 10 } * console.log(pagination.currentPage()); // 1 * console.log(pagination.pageSize()); // 10 * ``` */ declare function deepComputed(computation: () => T): DeepSignal; type SignalMethod = ((input: Input | (() => Input), config?: { injector?: Injector; }) => EffectRef) & EffectRef; /** * @description * * Creates a method for managing side effects with signals. * The method accepts a signal, a computation function, or a static value. * * @usageNotes * * ```ts * import { Component, signal } from '@angular/core'; * import { signalMethod } from '@ngrx/signals'; * * \@Component(...) * export class Counter { * readonly count = signal(1); * readonly logDoubledNumber = signalMethod( * (num) => console.log(num * 2) * ); * * constructor() { * this.logDoubledNumber(10); // logs: 20 * * this.logDoubledNumber(this.count); // logs: 2 * setTimeout(() => this.count.set(2), 1_000); // logs: 4 (after 1s) * } * } * ``` */ declare function signalMethod(processingFn: (value: Input) => void, config?: { injector?: Injector; }): SignalMethod; declare const STATE_SOURCE: unique symbol; type WritableStateSource = { [STATE_SOURCE]: { [K in keyof State]: WritableSignal; }; }; type StateSource = { [STATE_SOURCE]: { [K in keyof State]: Signal; }; }; type PartialStateUpdater = (state: State) => Partial; type StateWatcher = (state: NoInfer) => void; declare function isWritableStateSource(stateSource: StateSource): stateSource is WritableStateSource; /** * @description * * Updates the state of a SignalStore or SignalState. * Accepts a sequence of partial state objects and partial state updaters. * * @usageNotes * * ```ts * import { patchState, signalStore, withMethods, withState } from '@ngrx/signals'; * * export const CounterStore = signalStore( * withState({ count1: 0, count2: 0 }), * withMethods((store) => ({ * incrementFirst(): void { * patchState(store, (state) => ({ count1: state.count1 + 1 })); * }, * resetSecond(): void { * patchState(store, { count2: 0 }); * }, * })) * ); * ``` */ declare function patchState(stateSource: WritableStateSource, ...updaters: Array> | PartialStateUpdater>>): void; /** * @description * * Returns a snapshot of the current state from a SignalStore or SignalState. * When used within a reactive context, state changes are automatically tracked. * * @usageNotes * * ```ts * import { Component, effect, inject } from '@angular/core'; * import { getState, signalStore, withState } from '@ngrx/signals'; * * export const CounterStore = signalStore( * withState({ count1: 0, count2: 0 }) * ); * * \@Component(...) * export class Counter { * readonly store = inject(CounterStore); * * constructor() { * effect(() => { * const state = getState(this.store); * // 👇 Logs on state changes. * console.log(state); * }); * } * } * ``` */ declare function getState(stateSource: StateSource): State; /** * @description * * Synchronously tracks state changes of a SignalStore or SignalState. * * @usageNotes * * ```ts * import { Component } from '@angular/core'; * import { signalState, watchState } from '@ngrx/signals'; * * \@Component(...) * export class Counter { * readonly state = signalState({ count1: 0, count2: 0 }); * * constructor() { * // 👇 Synchronously logs every state change without debouncing. * watchState(this.state, console.log); * } * } * ``` */ declare function watchState(stateSource: StateSource, watcher: StateWatcher, config?: { injector?: Injector; }): { destroy(): void; }; type SignalState = DeepSignal & WritableStateSource; /** * @description * * Creates a state container with deeply nested signals for each property that * is an object literal. * * @usageNotes * * ```ts * import { Component } from '@angular/core'; * import { signalState, patchState } from '@ngrx/signals'; * * \@Component(...) * export class Counter { * readonly state = signalState({ count: 0 }); * * logCount(): void { * console.log(this.state.count()); * } * * increment(): void { * patchState(this.state, ({ count }) => ({ count: count + 1 })); * } * } * ``` */ declare function signalState(initialState: State): SignalState; type StateSignals = IsKnownRecord> extends true ? { [Key in keyof State]: IsKnownRecord extends true ? DeepSignal : Signal; } : {}; type MethodsDictionary = Record; type SignalStoreHooks = { onInit?: () => void; onDestroy?: () => void; }; type InnerSignalStore = { stateSignals: StateSignals; props: Props; methods: Methods; hooks: SignalStoreHooks; } & WritableStateSource; type SignalStoreFeatureResult = { state: object; props: object; methods: MethodsDictionary; }; type EmptyFeatureResult = { state: {}; props: {}; methods: {}; }; type SignalStoreFeature = (store: InnerSignalStore) => InnerSignalStore; type ProvidedInConfig = { providedIn?: 'root' | 'platform'; }; type SignalStoreMembers = Prettify & FeatureResult['props'] & FeatureResult['methods']>>; declare function signalStore(f1: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>): Type & StateSource>>>; declare function signalStore(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature, f12: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature, f12: SignalStoreFeature, f13: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature, f12: SignalStoreFeature, f13: SignalStoreFeature, f14: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature, f12: SignalStoreFeature, f13: SignalStoreFeature, f14: SignalStoreFeature, f15: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature, f12: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature, f12: SignalStoreFeature, f13: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature, f12: SignalStoreFeature, f13: SignalStoreFeature, f14: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState?: true; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature, f12: SignalStoreFeature, f13: SignalStoreFeature, f14: SignalStoreFeature, f15: SignalStoreFeature): Type & StateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature): Type & WritableStateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>): Type & WritableStateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature): Type & WritableStateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature): Type & WritableStateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature): Type & WritableStateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature): Type & WritableStateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature): Type & WritableStateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature): Type & WritableStateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature): Type & WritableStateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature): Type & WritableStateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature): Type & WritableStateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature, f12: SignalStoreFeature): Type & WritableStateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature, f12: SignalStoreFeature, f13: SignalStoreFeature): Type & WritableStateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature, f12: SignalStoreFeature, f13: SignalStoreFeature, f14: SignalStoreFeature): Type & WritableStateSource>>>; declare function signalStore(config: ProvidedInConfig & { protectedState: false; }, f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature, f11: SignalStoreFeature, f12: SignalStoreFeature, f13: SignalStoreFeature, f14: SignalStoreFeature, f15: SignalStoreFeature): Type & WritableStateSource>>>; type PrettifyFeatureResult = Prettify<{ state: Prettify; props: Prettify; methods: Prettify; }>; declare function signalStoreFeature(f1: SignalStoreFeature): SignalStoreFeature; declare function signalStoreFeature(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>): SignalStoreFeature>; declare function signalStoreFeature(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature): SignalStoreFeature>; declare function signalStoreFeature(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature): SignalStoreFeature>; declare function signalStoreFeature(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature): SignalStoreFeature>; declare function signalStoreFeature(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature): SignalStoreFeature>; declare function signalStoreFeature(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature): SignalStoreFeature>; declare function signalStoreFeature(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature): SignalStoreFeature>; declare function signalStoreFeature(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature): SignalStoreFeature>; declare function signalStoreFeature(f1: SignalStoreFeature, f2: SignalStoreFeature<{} & F1, F2>, f3: SignalStoreFeature, f4: SignalStoreFeature, f5: SignalStoreFeature, f6: SignalStoreFeature, f7: SignalStoreFeature, f8: SignalStoreFeature, f9: SignalStoreFeature, f10: SignalStoreFeature): SignalStoreFeature>; declare function signalStoreFeature, F1 extends SignalStoreFeatureResult>(input: Input, f1: SignalStoreFeature, F1>): SignalStoreFeature, F1>; declare function signalStoreFeature, F1 extends SignalStoreFeatureResult, F2 extends SignalStoreFeatureResult>(input: Input, f1: SignalStoreFeature, F1>, f2: SignalStoreFeature & F1, F2>): SignalStoreFeature, PrettifyFeatureResult>; declare function signalStoreFeature, F1 extends SignalStoreFeatureResult, F2 extends SignalStoreFeatureResult, F3 extends SignalStoreFeatureResult>(input: Input, f1: SignalStoreFeature, F1>, f2: SignalStoreFeature & F1, F2>, f3: SignalStoreFeature & F1 & F2, F3>): SignalStoreFeature, PrettifyFeatureResult>; declare function signalStoreFeature, F1 extends SignalStoreFeatureResult, F2 extends SignalStoreFeatureResult, F3 extends SignalStoreFeatureResult, F4 extends SignalStoreFeatureResult>(Input: Input, f1: SignalStoreFeature, F1>, f2: SignalStoreFeature & F1, F2>, f3: SignalStoreFeature & F1 & F2, F3>, f4: SignalStoreFeature & F1 & F2 & F3, F4>): SignalStoreFeature, PrettifyFeatureResult>; declare function signalStoreFeature, F1 extends SignalStoreFeatureResult, F2 extends SignalStoreFeatureResult, F3 extends SignalStoreFeatureResult, F4 extends SignalStoreFeatureResult, F5 extends SignalStoreFeatureResult>(input: Input, f1: SignalStoreFeature, F1>, f2: SignalStoreFeature & F1, F2>, f3: SignalStoreFeature & F1 & F2, F3>, f4: SignalStoreFeature & F1 & F2 & F3, F4>, f5: SignalStoreFeature & F1 & F2 & F3 & F4, F5>): SignalStoreFeature, PrettifyFeatureResult>; declare function signalStoreFeature, F1 extends SignalStoreFeatureResult, F2 extends SignalStoreFeatureResult, F3 extends SignalStoreFeatureResult, F4 extends SignalStoreFeatureResult, F5 extends SignalStoreFeatureResult, F6 extends SignalStoreFeatureResult>(input: Input, f1: SignalStoreFeature, F1>, f2: SignalStoreFeature & F1, F2>, f3: SignalStoreFeature & F1 & F2, F3>, f4: SignalStoreFeature & F1 & F2 & F3, F4>, f5: SignalStoreFeature & F1 & F2 & F3 & F4, F5>, f6: SignalStoreFeature & F1 & F2 & F3 & F4 & F5, F6>): SignalStoreFeature, PrettifyFeatureResult>; declare function signalStoreFeature, F1 extends SignalStoreFeatureResult, F2 extends SignalStoreFeatureResult, F3 extends SignalStoreFeatureResult, F4 extends SignalStoreFeatureResult, F5 extends SignalStoreFeatureResult, F6 extends SignalStoreFeatureResult, F7 extends SignalStoreFeatureResult>(input: Input, f1: SignalStoreFeature, F1>, f2: SignalStoreFeature & F1, F2>, f3: SignalStoreFeature & F1 & F2, F3>, f4: SignalStoreFeature & F1 & F2 & F3, F4>, f5: SignalStoreFeature & F1 & F2 & F3 & F4, F5>, f6: SignalStoreFeature & F1 & F2 & F3 & F4 & F5, F6>, f7: SignalStoreFeature & F1 & F2 & F3 & F4 & F5 & F6, F7>): SignalStoreFeature, PrettifyFeatureResult>; declare function signalStoreFeature, F1 extends SignalStoreFeatureResult, F2 extends SignalStoreFeatureResult, F3 extends SignalStoreFeatureResult, F4 extends SignalStoreFeatureResult, F5 extends SignalStoreFeatureResult, F6 extends SignalStoreFeatureResult, F7 extends SignalStoreFeatureResult, F8 extends SignalStoreFeatureResult>(input: Input, f1: SignalStoreFeature, F1>, f2: SignalStoreFeature & F1, F2>, f3: SignalStoreFeature & F1 & F2, F3>, f4: SignalStoreFeature & F1 & F2 & F3, F4>, f5: SignalStoreFeature & F1 & F2 & F3 & F4, F5>, f6: SignalStoreFeature & F1 & F2 & F3 & F4 & F5, F6>, f7: SignalStoreFeature & F1 & F2 & F3 & F4 & F5 & F6, F7>, f8: SignalStoreFeature & F1 & F2 & F3 & F4 & F5 & F6 & F7, F8>): SignalStoreFeature, PrettifyFeatureResult>; declare function signalStoreFeature, F1 extends SignalStoreFeatureResult, F2 extends SignalStoreFeatureResult, F3 extends SignalStoreFeatureResult, F4 extends SignalStoreFeatureResult, F5 extends SignalStoreFeatureResult, F6 extends SignalStoreFeatureResult, F7 extends SignalStoreFeatureResult, F8 extends SignalStoreFeatureResult, F9 extends SignalStoreFeatureResult>(input: Input, f1: SignalStoreFeature, F1>, f2: SignalStoreFeature & F1, F2>, f3: SignalStoreFeature & F1 & F2, F3>, f4: SignalStoreFeature & F1 & F2 & F3, F4>, f5: SignalStoreFeature & F1 & F2 & F3 & F4, F5>, f6: SignalStoreFeature & F1 & F2 & F3 & F4 & F5, F6>, f7: SignalStoreFeature & F1 & F2 & F3 & F4 & F5 & F6, F7>, f8: SignalStoreFeature & F1 & F2 & F3 & F4 & F5 & F6 & F7, F8>, f9: SignalStoreFeature & F1 & F2 & F3 & F4 & F5 & F6 & F7 & F8, F9>): SignalStoreFeature, PrettifyFeatureResult>; declare function signalStoreFeature, F1 extends SignalStoreFeatureResult, F2 extends SignalStoreFeatureResult, F3 extends SignalStoreFeatureResult, F4 extends SignalStoreFeatureResult, F5 extends SignalStoreFeatureResult, F6 extends SignalStoreFeatureResult, F7 extends SignalStoreFeatureResult, F8 extends SignalStoreFeatureResult, F9 extends SignalStoreFeatureResult, F10 extends SignalStoreFeatureResult>(input: Input, f1: SignalStoreFeature, F1>, f2: SignalStoreFeature & F1, F2>, f3: SignalStoreFeature & F1 & F2, F3>, f4: SignalStoreFeature & F1 & F2 & F3, F4>, f5: SignalStoreFeature & F1 & F2 & F3 & F4, F5>, f6: SignalStoreFeature & F1 & F2 & F3 & F4 & F5, F6>, f7: SignalStoreFeature & F1 & F2 & F3 & F4 & F5 & F6, F7>, f8: SignalStoreFeature & F1 & F2 & F3 & F4 & F5 & F6 & F7, F8>, f9: SignalStoreFeature & F1 & F2 & F3 & F4 & F5 & F6 & F7 & F8, F9>, f10: SignalStoreFeature & F1 & F2 & F3 & F4 & F5 & F6 & F7 & F8 & F9, F10>): SignalStoreFeature, PrettifyFeatureResult>; declare function type(): T; type ComputedResult | (() => unknown)>> = { [P in keyof ComputedDictionary]: ComputedDictionary[P] extends Signal ? ComputedDictionary[P] : ComputedDictionary[P] extends () => infer V ? Signal : never; }; /** * @description * * Adds computed signals to a SignalStore. * Accepts a factory function that returns a dictionary of computed signals or * computation functions. * * @usageNotes * * ```ts * import { signalStore, withState, withComputed } from '@ngrx/signals'; * * export const CounterStore = signalStore( * withState({ count: 0 }), * withComputed(({ count }) => ({ * doubleCount: () => count() * 2, * })) * ); * ``` */ declare function withComputed | (() => unknown)>>(computedFactory: (store: Prettify & Input['props'] & Input['methods']>) => ComputedDictionary): SignalStoreFeature; methods: {}; }>; /** * @description * * Allows passing state signals, properties, and methods from a SignalStore * instance to a custom feature. * * @usageNotes * * ```ts * import { signalStore, withFeature, withMethods } from '@ngrx/signals'; * * export const UserStore = signalStore( * withMethods((store) => ({ * loadById(id: number): Promise { * return Promise.resolve({ id, name: 'John' }); * }, * })), * withFeature( * // 👇 Has full access to store members. * (store) => withEntityLoader((id) => store.loadById(id)) * ) * ); * ``` */ declare function withFeature(featureFactory: (store: Prettify & Input['props'] & Input['methods'] & WritableStateSource>) => SignalStoreFeature): SignalStoreFeature; type HookFn = (store: Prettify & Input['props'] & Input['methods'] & WritableStateSource>) => void; type HooksFactory = (store: Prettify & Input['props'] & Input['methods'] & WritableStateSource>) => { onInit?: () => void; onDestroy?: () => void; }; declare function withHooks(hooks: { onInit?: HookFn; onDestroy?: HookFn; }): SignalStoreFeature; declare function withHooks(hooks: HooksFactory): SignalStoreFeature; type LinkedStateResult | (() => unknown)>> = { [K in keyof LinkedStateInput]: LinkedStateInput[K] extends WritableSignal ? V : LinkedStateInput[K] extends () => infer V ? V : never; }; /** * @description * * Adds linked state slices to a SignalStore. * Accepts a factory function that returns a dictionary of linked signals or * computation functions. * * @usageNotes * * ### Using a computation function * * ```ts * import { signalStore, withLinkedState, withState } from '@ngrx/signals'; * * export const OptionsStore = signalStore( * withState({ options: [1, 2, 3] }), * withLinkedState(({ options }) => ({ * selectedOption: () => options()[0], * })) * ); * ``` * * ### Using linkedSignal for advanced use cases * * ```ts * import { linkedSignal } from '@angular/core'; * import { signalStore, withLinkedState, withState } from '@ngrx/signals'; * * type Option = { id: number; label: string }; * * export const OptionsStore = signalStore( * withState({ options: [] as Option[] }), * withLinkedState(({ options }) => ({ * selectedOption: linkedSignal({ * source: options, * computation: (newOptions, previous) => { * const option = newOptions.find((o) => o.id === previous?.value.id); * return option ?? newOptions[0]; * }, * }), * })) * ) * ``` */ declare function withLinkedState | (() => unknown)>, Input extends SignalStoreFeatureResult>(linkedStateFactory: (store: Prettify & Input['props']>) => State): SignalStoreFeature; props: {}; methods: {}; }>; /** * @description * * Adds methods to a SignalStore. * * @usageNotes * * ```ts * import { patchState, signalStore, withMethods, withState } from '@ngrx/signals'; * * export const CounterStore = signalStore( * withState({ count: 0 }), * withMethods((store) => ({ * increment(): void { * patchState(store, ({ count }) => ({ count: count + 1 })); * }, * decrement(): void { * patchState(store, ({ count }) => ({ count: count - 1 })); * }, * })) * ); * ``` */ declare function withMethods(methodsFactory: (store: Prettify & Input['props'] & Input['methods'] & WritableStateSource>) => Methods): SignalStoreFeature; /** * @description * * Adds custom properties to a SignalStore. * * @usageNotes * * ```ts * import { toObservable } from '@angular/core/rxjs-interop'; * import { signalStore, withProps, withState } from '@ngrx/signals'; * * export const TodosStore = signalStore( * withState({ todos: [] as Todo[], isLoading: false }), * withProps(({ isLoading }) => ({ * isLoading$: toObservable(isLoading), * })) * ); * ``` */ declare function withProps(propsFactory: (store: Prettify & Input['props'] & Input['methods'] & WritableStateSource>) => Props): SignalStoreFeature; declare function withState(stateFactory: () => State): SignalStoreFeature; declare function withState(state: State): SignalStoreFeature; export { deepComputed, getState, isWritableStateSource, patchState, signalMethod, signalState, signalStore, signalStoreFeature, type, watchState, withComputed, withFeature, withHooks, withLinkedState, withMethods, withProps, withState }; export type { DeepSignal, EmptyFeatureResult, PartialStateUpdater, Prettify, SignalMethod, SignalState, SignalStoreFeature, SignalStoreFeatureResult, StateSignals, StateSource, StateWatcher, WritableStateSource };