import type { GraphQLField, GraphQLSchema } from 'graphql';
import type { IStringifyOptions } from 'qs';
import type { Logger, MeshFetch } from '@graphql-mesh/types';
type HTTPMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'PATCH';
export interface HTTPRootFieldResolverOpts {
    sourceName: string;
    endpoint: string;
    path: string;
    httpMethod: HTTPMethod;
    operationSpecificHeaders: Record<string, string>;
    isBinary: boolean;
    requestBaseBody: any;
    queryParamArgMap: Record<string, string>;
    queryStringOptionsByParam: Record<string, IStringifyOptions & {
        destructObject?: boolean;
        jsonStringify?: boolean;
    }>;
    queryStringOptions: IStringifyOptions & {
        destructObject?: boolean;
        jsonStringify?: boolean;
    };
    jsonApiFields: boolean;
}
export interface GlobalOptions {
    sourceName: string;
    endpoint: string;
    timeout: number;
    operationHeaders: Record<string, string>;
    queryStringOptions: IStringifyOptions;
    queryParams: Record<string, string | number | boolean>;
}
export declare function addHTTPRootFieldResolver(schema: GraphQLSchema, field: GraphQLField<any, any>, globalLogger: Logger, globalFetch: MeshFetch, { path, operationSpecificHeaders, httpMethod, isBinary, requestBaseBody, queryParamArgMap, queryStringOptionsByParam, queryStringOptions, jsonApiFields, }: HTTPRootFieldResolverOpts, { sourceName, endpoint, timeout, operationHeaders: globalOperationHeaders, queryStringOptions: globalQueryStringOptions, queryParams: globalQueryParams, }: GlobalOptions): void;
export {};
