import { ModuleWithProviders } from '@angular/core';
import { AppState, FeatureConfig, Reducer, StoreConfig } from '@mini-rx/common';
import { Store } from '../store';
import * as i0 from "@angular/core";
export declare function storeFactory(config: StoreConfig<AppState>): Store;
export declare class StoreRootModule {
    private store;
    static ɵfac: i0.ɵɵFactoryDeclaration<StoreRootModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<StoreRootModule, never, never, never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<StoreRootModule>;
}
export declare class StoreFeatureModule {
    constructor();
    static ɵfac: i0.ɵɵFactoryDeclaration<StoreFeatureModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<StoreFeatureModule, never, never, never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<StoreFeatureModule>;
}
export declare class StoreModule {
    static forRoot<T>(config: StoreConfig<T>): ModuleWithProviders<StoreRootModule>;
    static forFeature<T>(featureName: string, reducer: Reducer<T>, config?: Partial<FeatureConfig<T>>): ModuleWithProviders<StoreFeatureModule>;
    static ɵfac: i0.ɵɵFactoryDeclaration<StoreModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<StoreModule, never, never, never>;
    static ɵinj: i0.ɵɵInjectorDeclaration<StoreModule>;
}
