/** @packageDocumentation
 * @module State
 */
/** NameToReducerMap used by Reducer Registry
 * @public
 * @deprecated in 4.15.0. Use your preferred state management library instead.
 */
export interface NameToReducerMap {
    [name: string]: (state: any, action: any) => any;
}
/** Redux Reducer Registry.
 * Follows the example at http://nicolasgallagher.com/redux-modules-and-code-splitting/
 * Allows for small modules to provide their own reducers so that the they can manage their own state
 * @beta
 * @deprecated in 4.15.0. Use your preferred state management library instead.
 */
export declare class ReducerRegistry {
    private _onReducerListChanged;
    private _reducers;
    /** ReducerRegistry constructor that initializes an empty reducer map to be populated by called to registerReducer. */
    constructor();
    /** Call to register a reducer and its name. */
    registerReducer(name: string, reducer: (state: any, action: any) => any): void;
    /** Supports a single listener which should be the Redux store, see [[StoreManager]].
     * @internal
     */
    setChangeListener(listener: (reducers: NameToReducerMap) => void): void;
    /** Returns map of registered Reducers. */
    getReducers(): NameToReducerMap;
    /** Clear reducers only required for unit testing
     * @internal
     */
    clearReducers(): void;
}
/** ReducerRegistryInstance singleton instance of Reducer Registry
 * @beta
 * @deprecated in 4.15.0. Use your preferred state management library instead.
 */
export declare const ReducerRegistryInstance: ReducerRegistry;
//# sourceMappingURL=ReducerRegistry.d.ts.map