import { ModuleJoinerConfig, RemoteJoinerOptions, RemoteJoinerQuery } from "@medusajs/types";
import { IRemoteDataFetcher, RelationMap } from "./types";
export type { RelationMap } from "./types";
/**
 * Executes cross-module graph queries by resolving relationships from module
 * joiner configs.
 *
 * Pipeline: {@link GraphCatalog} (index configs) → {@link compileQuery}
 * (query → plan) → {@link executePlan} (fetch + join + shortcuts).
 *
 * Data loading is delegated to {@link IRemoteDataFetcher} (typically
 * ModuleDataFetcher). Query is the public entry point that normalizes user
 * input and invokes {@link RemoteJoiner.query}.
 */
export declare class RemoteJoiner {
    private dataFetcher;
    private catalog;
    constructor(serviceConfigs: ModuleJoinerConfig[], dataFetcher: IRemoteDataFetcher, options?: {
        autoCreateServiceNameAlias?: boolean;
        relationMap?: RelationMap;
    });
    query(queryObj: RemoteJoinerQuery, options?: RemoteJoinerOptions): Promise<any>;
}
//# sourceMappingURL=remote-joiner.d.ts.map