import { IABBPluginActionCreator, IABBPluginState, IABBPluginStateData, IABBTimedPromise } from "../../../";
import { ThunkDispatch } from "redux-thunk";
import { Action, AnyAction, Reducer, Unsubscribe } from "redux";
export interface IABBPluginAction extends AnyAction {
    plugin: IABBPluginStateData;
}
export interface IABBInitStateAction extends AnyAction {
    actionCreator: IABBPluginActionCreator;
}
export declare const ABBActionTypes: {
    "INIT_STATE": string;
    "ADD_PLUGIN": string;
};
export interface IABBPluginReducer extends Reducer<IABBPluginState, IABBPluginAction> {
}
export interface IABBStore<S = any, E = any, A extends Action = Action> {
    dispatch: ThunkDispatch<S, E, A>;
    getState(): S;
    subscribe(listener: () => void): Unsubscribe;
}
export interface IABBCoreAPI {
    coreIsInitializedPromise: IABBTimedPromise;
    routerIsInitializedPromise: IABBTimedPromise;
    translatorIsInitializedPromise: IABBTimedPromise;
    readonly Store: IABBStore;
}
