import { TypedUseSelectorHook } from 'react-redux';
import { Dispatch } from 'redux';
import { AppState } from '../modules';

export declare const useAppDispatch: () => import('redux-thunk').ThunkDispatch<import('redux').CombinedState<{
    root: import('../modules').IRootState;
    explorer: import('../modules').ITreeItem[];
    debugger: import('../modules').IDebuggerState;
    settings: import('../modules').ISettingsState;
    catalog: {
        state: "loading";
    } | {
        state: "loaded";
        model: datasources.IEnhancedCatalog;
    } | {
        state: "error";
        error: string;
    };
    roles: import('../modules').IRolesState;
    sharedDatasources: import('../modules').ISharedDatasourcesState;
    savedConditions: import('../modules').ISavedConditionsState;
    webforms: import('../modules').IWebformEditorState;
    modals: import('../modules').IModalsState;
    sharedCSS: import('../modules').ISharedCSSState;
    model: import('../modules').IModelState;
    tasks: import('@ws-ui/shared').ISingleTask[];
}>, undefined, import('redux').AnyAction> & Dispatch<import('redux').AnyAction>;
export declare const useAppSelector: TypedUseSelectorHook<AppState>;
export type AsyncThunkConfig<RejectValue = string> = {
    /** return type for `thunkApi.getState` */
    state: AppState;
    /** type for `thunkApi.dispatch` */
    dispatch: Dispatch;
    /** type of the `extra` argument for the thunk middleware, which will be passed in as `thunkApi.extra` */
    extra: unknown;
    /** type to be passed into `rejectWithValue`'s first argument that will end up on `rejectedAction.payload` */
    rejectValue: RejectValue;
    /** return type of the `serializeError` option callback */
    serializedErrorType: unknown;
    /** type to be returned from the `getPendingMeta` option callback & merged into `pendingAction.meta` */
    pendingMeta: unknown;
    /** type to be passed into the second argument of `fulfillWithValue` to finally be merged into `fulfilledAction.meta` */
    fulfilledMeta: unknown;
    /** type to be passed into the second argument of `rejectWithValue` to finally be merged into `rejectedAction.meta` */
    rejectedMeta: unknown;
};
