import type { Relay } from '@coveo/relay';
import { type Middleware, type Reducer, type ReducersMapObject, type StateFromReducersMapObject } from '@reduxjs/toolkit';
import type { NavigatorContext } from './navigator-context-provider.js';
import type { ThunkExtraArguments } from './thunk-extra-arguments.js';
export interface CoreExtraArguments extends ThunkExtraArguments, AdditionalCoreExtraArguments {
}
export interface AdditionalCoreExtraArguments {
    relay: Relay;
    navigatorContext: NavigatorContext;
}
interface ConfigureStoreOptions<Reducers extends ReducersMapObject> {
    reducer: Reducer;
    preloadedState?: StateFromReducersMapObject<Reducers>;
    middlewares?: Middleware[];
    thunkExtraArguments: CoreExtraArguments;
    name: string;
}
export declare function configureStore<Reducers extends ReducersMapObject>({ reducer, preloadedState, middlewares, thunkExtraArguments, name, }: ConfigureStoreOptions<Reducers>): import("@reduxjs/toolkit").EnhancedStore<any, import("redux").UnknownAction, import("@reduxjs/toolkit").Tuple<[import("redux").StoreEnhancer<{
    dispatch: {};
}>, import("redux").StoreEnhancer]>>;
export type Store = ReturnType<typeof configureStore>;
export {};
