import { StoreEnhancer, Action } from "@reduxjs/toolkit";
import { RemoteReduxServerAddress } from "./types";
declare type PromiseDispatch = <T extends Action>(promise: Promise<T>) => Promise<T>;
/**
 * Creates the client side of a remote redux.
 * Exposes a store enhancer that will synchronize a copy of a slice of state.
 * Initially used in the Interop Service and Linker UI.
 *
 * @param param.server fixed string "address"
 * @param param.slice slice of state to observe and synchronize (i.e. rootState[slice])
 */
export declare const remoteReduxClientEnhancer: ({ server, slice }: {
    server: RemoteReduxServerAddress;
    slice: string;
}) => StoreEnhancer<{
    dispatch: PromiseDispatch;
}, {}>;
/**
 * Creates the server side of a remote redux. This enhancer should be added before DevTools.instrument().
 *
 * @param param.server string The router channel that this server should listen on
 */
export declare const remoteReduxServerEnhancer: ({ server }: {
    server: RemoteReduxServerAddress;
}) => StoreEnhancer<{
    dispatch: PromiseDispatch;
}, {}>;
export {};
//# sourceMappingURL=remoteReduxEnhancer.d.ts.map