import { DocumentNode, GraphQLSchema } from 'graphql';
import { SubschemaConfig } from '@graphql-tools/delegate';
import { TypeMergingOptions } from '@graphql-tools/stitch';
import { type Executor } from '@graphql-tools/utils';
export interface GetSubschemasFromSupergraphSdlOpts {
    supergraphSdl: string | DocumentNode;
    onExecutor?: (opts: {
        subgraphName: string;
        endpoint: string;
        subgraphSchema: GraphQLSchema;
    }) => Executor;
    batch?: boolean;
}
export declare function ensureSupergraphSDLAst(supergraphSdl: string | DocumentNode): DocumentNode;
export declare function getFieldMergerFromSupergraphSdl(supergraphSdl: DocumentNode | string): TypeMergingOptions['fieldConfigMerger'];
export declare function getSubschemasFromSupergraphSdl({ supergraphSdl, onExecutor, batch, }: GetSubschemasFromSupergraphSdlOpts): Map<string, SubschemaConfig<any, any, any, Record<string, any>>>;
export declare function getStitchedSchemaFromSupergraphSdl(opts: GetSubschemasFromSupergraphSdlOpts): GraphQLSchema;
