import { RemoteReduxServerAddress } from "./types";
/**
 * Creates a redux store and attaches it to a remote store.
 *
 * @param server The name of the remote redux server to attach.
 * @param slice The slice from the remote redux server to subscribe.
 * @param emptyStore An empty state for the local store, to handle the initial display prior to the remote side updating the local side.
 * @param dispatchOnly - Set to true to opt out of inbound state changes on the store. This can minimize network traffic for write-only situations.
 * @returns
 */
export declare const getRemoteStore: <StoreType extends {
    [x: string]: any;
} | undefined>({ server, slice, emptyStore, dispatchOnly, }: {
    server: RemoteReduxServerAddress;
    slice: string;
    emptyStore: StoreType;
    dispatchOnly?: boolean;
}) => import("@reduxjs/toolkit").EnhancedStore<any, import("redux").AnyAction, [import("@reduxjs/toolkit").ThunkMiddleware<any, import("redux").AnyAction>], import("redux").StoreEnhancer<{
    dispatch: import("./types").PromiseDispatch;
}>[]>;
/**
 * Creates a redux store and attaches it to a remote store and then returns it as a singleton. This lazily creates
 * the store and allows re-use without connection overhead.
 *
 * @param singletonName The unique identifier to use for the singleton
 * @param server The name of the remote redux server to attach.
 * @param slice The slice from the remote redux server to subscribe.
 * @param emptyStore An empty state for the local store, to handle the initial display prior to the remote side updating the local side.
 * @param dispatchOnly - Set to true to opt out of inbound state changes on the store. This can minimize network traffic for write-only situations.
 * @returns
 */
export declare const getRemoteStoreAsSingleton: <StoreType extends {
    [x: string]: any;
} | undefined>({ singletonName, server, slice, emptyStore, dispatchOnly, }: {
    singletonName: string;
    server: RemoteReduxServerAddress;
    slice: string;
    emptyStore: StoreType;
    dispatchOnly?: boolean;
}) => import("@reduxjs/toolkit").EnhancedStore<any, import("redux").AnyAction, [import("@reduxjs/toolkit").ThunkMiddleware<any, import("redux").AnyAction>], import("redux").StoreEnhancer<{
    dispatch: import("./types").PromiseDispatch;
}>[]>;
/**
 * Resolves to a point in time snapshot of the requested remote redux store's state. If `slice` is specified
 * then only that slice will be returned, otherwise the entire store will be returned.
 */
export declare const getRemoteState: <StoreType extends {
    [x: string]: any;
} | undefined>({ server, slice, slices, }: {
    server: RemoteReduxServerAddress;
    slice?: string;
    slices?: string[];
}) => Promise<StoreType>;
//# sourceMappingURL=getRemoteStore.d.ts.map