import { ModuleWithProviders, OnDestroy, InjectionToken, Injector } from '@angular/core'; import { Action, ActionReducer, ActionReducerMap, ActionReducerFactory, StoreFeature, InitialState, MetaReducer, RuntimeChecks } from './models'; import { ActionsSubject } from './actions_subject'; import { ReducerManager, ReducerObservable } from './reducer_manager'; import { ScannedActionsSubject } from './scanned_actions_subject'; import { Store } from './store'; export declare class StoreRootModule { constructor(actions$: ActionsSubject, reducer$: ReducerObservable, scannedActions$: ScannedActionsSubject, store: Store, guard: any, actionCheck: any); } export declare class StoreFeatureModule implements OnDestroy { private features; private featureReducers; private reducerManager; constructor(features: StoreFeature[], featureReducers: ActionReducerMap[], reducerManager: ReducerManager, root: StoreRootModule, actionCheck: any); ngOnDestroy(): void; } export interface StoreConfig { initialState?: InitialState; reducerFactory?: ActionReducerFactory; metaReducers?: MetaReducer[]; } export interface RootStoreConfig extends StoreConfig { runtimeChecks?: Partial; } /** * An object with the name and the reducer for the feature. */ export interface FeatureSlice { name: string; reducer: ActionReducer; } export declare class StoreModule { static forRoot(reducers: ActionReducerMap | InjectionToken>, config?: RootStoreConfig): ModuleWithProviders; static forFeature(featureName: string, reducers: ActionReducerMap | InjectionToken>, config?: StoreConfig | InjectionToken>): ModuleWithProviders; static forFeature(featureName: string, reducer: ActionReducer | InjectionToken>, config?: StoreConfig | InjectionToken>): ModuleWithProviders; static forFeature(slice: FeatureSlice, config?: StoreConfig | InjectionToken>): ModuleWithProviders; } export declare function _createStoreReducers(injector: Injector, reducers: ActionReducerMap): unknown; export declare function _createFeatureStore(injector: Injector, configs: StoreConfig[] | InjectionToken>[], featureStores: StoreFeature[]): (StoreFeature | { key: string; reducerFactory: any; metaReducers: any; initialState: any; })[]; export declare function _createFeatureReducers(injector: Injector, reducerCollection: ActionReducerMap[]): unknown[]; export declare function _initialStateFactory(initialState: any): any; export declare function _concatMetaReducers(metaReducers: MetaReducer[], userProvidedMetaReducers: MetaReducer[]): MetaReducer[]; export declare function _provideForRootGuard(store: Store): any;