import { Reducer, Store } from 'redux';
import 'rxjs/add/operator/toPromise';
import { ActionFunctionType } from './action/function-type';
import { ActionFunctionTypeArray } from './action/function-type-array';
import { ReduxStateInterface } from './state/interface';
export declare class RegistryReducerItem {
    stateName: string;
    reducer: Reducer<{}>;
    type: ActionFunctionType<{}>;
}
export interface IRegisterStatePayload {
    initialValue: {};
    name: string;
}
export declare class Registry {
    static readonly ACTION_REGISTER_STATE: string;
    private static _store;
    private static _reducers;
    static reset(): void;
    static registerStore(store: Store<{}>): void;
    static registerReducer(stateName: string, types: ActionFunctionTypeArray<{}>, reducer: Reducer<{}>): void;
    static registerState(state: ReduxStateInterface<{}>): void;
    static getReducerItemsByType(type: string): RegistryReducerItem[];
    static getStore(): Promise<Store<{}>>;
}
