/**
 * Internal dependencies
 */
import type { StoreConfig, ActionCreator, Selector } from '../utils/store-types';
type AnyAction = {
    type: string;
    payload?: object;
};
type MapOf<T> = {
    [name: string]: T;
};
/**
 * Combines multiple store configs into one.
 *
 * While in principle this function could be implemented accepting an array of store configs, such an implementation
 * would not be type safe. The current implementation looks a bit cumbersome, but it is type safe as it treats every
 * store config individually, as their types are different.
 *
 * This also means that the function cannot be used to combine an arbitrary number of store configs, but only up to a
 * limit. For now, this limit is set to 6, which should be sufficient for most use cases.
 *
 * @param storeConfig1 - The first store config.
 * @param storeConfig2 - Optional. The second store config. Default is none (undefined).
 * @param storeConfig3 - Optional. The third store config. Default is none (undefined).
 * @param storeConfig4 - Optional. The fourth store config. Default is none (undefined).
 * @param storeConfig5 - Optional. The fifth store config. Default is none (undefined).
 * @param storeConfig6 - Optional. The sixth store config. Default is none (undefined).
 * @returns The combined store config.
 */
export default function combineStoreConfigs<A extends object, B extends MapOf<ActionCreator>, C extends AnyAction, D extends MapOf<Selector>, E extends object, F extends MapOf<ActionCreator>, G extends AnyAction, H extends MapOf<Selector>, I extends object, J extends MapOf<ActionCreator>, K extends AnyAction, L extends MapOf<Selector>, M extends object, N extends MapOf<ActionCreator>, O extends AnyAction, P extends MapOf<Selector>, Q extends object, R extends MapOf<ActionCreator>, S extends AnyAction, T extends MapOf<Selector>, U extends object, V extends MapOf<ActionCreator>, W extends AnyAction, X extends MapOf<Selector>>(storeConfig1: StoreConfig<A, B, C, D>, storeConfig2?: StoreConfig<E, F, G, H>, storeConfig3?: StoreConfig<I, J, K, L>, storeConfig4?: StoreConfig<M, N, O, P>, storeConfig5?: StoreConfig<Q, R, S, T>, storeConfig6?: StoreConfig<U, V, W, X>): StoreConfig<A & E & I & M & Q & U, B & F & J & N & R & V, C | G | K | O | S | W, D & H & L & P & T & X>;
export {};
//# sourceMappingURL=combine-store-configs.d.ts.map