import { Action as ReduxAction, Reducer } from "redux";
import { Exception } from "./Exception";
interface LoadingState {
    [loading: string]: number;
}
export interface State {
    loading: LoadingState;
    app: {};
}
export interface Action<P> extends ReduxAction<string> {
    name?: string;
    payload: P;
}
interface SetStateActionPayload {
    module: string;
    state: any;
}
export declare function setStateAction(module: string, state: object, type: string): Action<SetStateActionPayload>;
interface LoadingActionPayload {
    identifier: string;
    show: boolean;
}
export declare const LOADING_ACTION = "@@framework/loading";
export declare function loadingAction(show: boolean, identifier?: string): Action<LoadingActionPayload>;
export declare const ERROR_ACTION_TYPE: string;
export declare function errorAction(error: any): Action<Exception>;
export declare function rootReducer(): Reducer<State>;
export declare function showLoading(state: State, identifier?: string): boolean;
export {};
