import { Action, MiddlewareAPI } from "redux";
import { IReduxActionConstructor, ReduxAction } from "../action";
import { IPlugin, ReduxStore } from "../store";
import { VirtualStore } from "../virtual-store";
export interface IPromiseState {
    result: any;
    success: boolean;
    resolved: boolean;
}
export interface IPromiseState {
    PromiseQueue: IPromiseState[];
}
export declare class PromiseQueue extends VirtualStore<IPromiseState> {
}
export interface IPromiseActionData<IData> {
    promise: Promise<IData>;
    success: IReduxActionConstructor<IData, any>;
    failed: IReduxActionConstructor<any, any>;
}
export declare class PromiseAction extends ReduxAction<IPromiseActionData<any>, IPromiseState> {
}
export declare function promiseMiddleware(store: MiddlewareAPI<any>): (next: any) => (action: Action) => any;
export declare class PromisePlugin implements IPlugin<IPromiseState> {
    __redux_plugin(redux: ReduxStore<IPromiseState>): void;
}
