import { type IntrospectionOptions } from 'graphql';
import type { MeshComposeCLISourceHandlerDef } from './types.cjs';
export interface GraphQLSubgraphLoaderHTTPConfiguration {
    /**
     * A url or file path to your remote GraphQL endpoint.
     * If you provide a path to a code file(js or ts),
     * other options will be ignored and the schema exported from the file will be used directly.
     */
    endpoint: string;
    /**
     * HTTP method used for GraphQL operations (Allowed values: GET, POST)
     */
    method?: 'GET' | 'POST';
    /**
     * Use HTTP GET for Query operations
     */
    useGETForQueries?: boolean;
    /**
     * JSON object representing the Headers to add to the runtime of the API calls only for operation during runtime
     */
    operationHeaders?: {
        [k: string]: any;
    };
    /**
     * Request Credentials if your environment supports it.
     * [See more](https://developer.mozilla.org/en-US/docs/Web/API/Request/credentials)
     *
     * @default "same-origin" (Allowed values: omit, include)
     */
    credentials?: 'omit' | 'include';
    /**
     * Retry attempts if fails
     */
    retry?: number;
    /**
     * Timeout in milliseconds
     */
    timeout?: number;
    /**
     * Path to the introspection
     * You can separately give schema introspection or SDL
     */
    source?: string;
    /**
     * JSON object representing the Headers to add to the runtime of the API calls only for schema introspection
     */
    schemaHeaders?: any;
    /**
     * Federation Subgraph
     *
     * @default false
     */
    federation?: boolean;
    /**
     * Transport kind
     *
     * @default 'http'
     */
    transportKind?: 'http';
    /**
     * While introspecting the schema, you can customize the introspection query by providing these options.
     * This is useful if you have a GraphQL server that does not support some of the newer features of GraphQL.
     *
     * By default, Mesh has the following options;
     *
     * ```json
     * {
     *  "descriptions": true,
     *  "specifiedByUrl": false,
     *  "directiveIsRepeatable": false,
     *  "schemaDescription": false,
     *  "inputValueDeprecation": true,
     *  "oneOf": false
     * }
     * ```
     */
    introspectionOptions?: IntrospectionOptions;
}
export declare const DEFAULT_INTROSPECTION_OPTIONS: Required<IntrospectionOptions>;
export declare function loadGraphQLHTTPSubgraph(subgraphName: string, { endpoint, method, useGETForQueries, operationHeaders, credentials, retry, timeout, source, schemaHeaders, introspectionOptions, federation, transportKind }: GraphQLSubgraphLoaderHTTPConfiguration): MeshComposeCLISourceHandlerDef;
