export interface Action { type: string; } export declare interface TypedAction extends Action { readonly type: T; } export declare type ActionType = A extends ActionCreator ? ReturnType & { type: T; } : never; export declare type TypeId = () => T; export declare type InitialState = Partial | TypeId> | void; /** * A function that takes an `Action` and a `State`, and returns a `State`. * See `createReducer`. */ export interface ActionReducer { (state: T | undefined, action: V): T; } export declare type ActionReducerMap = { [p in keyof T]: ActionReducer; }; export interface ActionReducerFactory { (reducerMap: ActionReducerMap, initialState?: InitialState): ActionReducer; } export declare type MetaReducer = (reducer: ActionReducer) => ActionReducer; export interface StoreFeature { key: string; reducers: ActionReducerMap | ActionReducer; reducerFactory: ActionReducerFactory; initialState?: InitialState; metaReducers?: MetaReducer[]; } export declare type Selector = (state: T) => V; /** * @deprecated Selectors with props are deprecated, for more info see {@link https://github.com/ngrx/platform/issues/2980 Github Issue} */ export declare type SelectorWithProps = (state: State, props: Props) => Result; export declare const arraysAreNotAllowedMsg = "action creator cannot return an array"; declare type ArraysAreNotAllowed = typeof arraysAreNotAllowedMsg; export declare const typePropertyIsNotAllowedMsg = "action creator cannot return an object with a property named `type`"; declare type TypePropertyIsNotAllowed = typeof typePropertyIsNotAllowedMsg; export declare const emptyObjectsAreNotAllowedMsg = "action creator cannot return an empty object"; declare type EmptyObjectsAreNotAllowed = typeof emptyObjectsAreNotAllowedMsg; export declare const arraysAreNotAllowedInProps = "action creator props cannot be an array"; declare type ArraysAreNotAllowedInProps = typeof arraysAreNotAllowedInProps; export declare const typePropertyIsNotAllowedInProps = "action creator props cannot have a property named `type`"; declare type TypePropertyIsNotAllowedInProps = typeof typePropertyIsNotAllowedInProps; export declare const emptyObjectsAreNotAllowedInProps = "action creator props cannot be an empty object"; declare type EmptyObjectsAreNotAllowedInProps = typeof emptyObjectsAreNotAllowedInProps; export declare const primitivesAreNotAllowedInProps = "action creator props cannot be a primitive value"; declare type PrimitivesAreNotAllowedInProps = typeof primitivesAreNotAllowedInProps; export declare type FunctionIsNotAllowed = T extends Function ? ErrorMessage : T; /** * A function that returns an object in the shape of the `Action` interface. Configured using `createAction`. */ export declare type Creator

= FunctionWithParametersType; export declare type Primitive = string | number | bigint | boolean | symbol | null | undefined; export declare type NotAllowedCheck = T extends any[] ? ArraysAreNotAllowed : T extends { type: any; } ? TypePropertyIsNotAllowed : keyof T extends never ? EmptyObjectsAreNotAllowed : unknown; export declare type NotAllowedInPropsCheck = T extends object ? T extends any[] ? ArraysAreNotAllowedInProps : T extends { type: any; } ? TypePropertyIsNotAllowedInProps : keyof T extends never ? EmptyObjectsAreNotAllowedInProps : unknown : T extends Primitive ? PrimitivesAreNotAllowedInProps : never; /** * See `Creator`. */ export declare type ActionCreator = C & TypedAction; export interface ActionCreatorProps { _as: 'props'; _p: T; } export declare type FunctionWithParametersType

= (...args: P) => R; export interface RuntimeChecks { /** * Verifies if the state is serializable */ strictStateSerializability: boolean; /** * Verifies if the actions are serializable. Please note, you may not need to set it to `true` unless you are storing/replaying actions using external resources, for example `localStorage`. */ strictActionSerializability: boolean; /** * Verifies that the state isn't mutated */ strictStateImmutability: boolean; /** * Verifies that actions aren't mutated */ strictActionImmutability: boolean; /** * Verifies that actions are dispatched within NgZone */ strictActionWithinNgZone: boolean; /** * Verifies that action types are not registered more than once */ strictActionTypeUniqueness?: boolean; } export {};