import { GraphQLClient } from 'graphql-request';
import { GraphQLError } from 'graphql';
import { Headers as NodeFetchHeaders } from 'node-fetch';
import { Authenticator, AuthorizationHeader } from '../auth';
import { CLIDetails, EnvironmentOptions } from '../index';
import { BaseError, UserError } from '../shared';
import { GraphQLRunner, Variables } from './graphql-client';
export declare const SERVICE_NAME = "forge-cli";
export declare const PROD_BUSINESS_UNIT = "Ecosystem - COGS";
export declare const NON_PROD_BUSINESS_UNIT = "Ecosystem Engineering";
export declare const BUSINESS_UNITS: EnvironmentOptions;
export declare class GraphQLAuthenticationError extends UserError {
}
export declare class OutdatedClientVersionError extends UserError {
    constructor();
}
export declare class InsufficientScopesError extends UserError {
    constructor();
}
export declare class GraphQLProviderServiceError extends BaseError {
    private readonly userError;
    private readonly code;
    private readonly statusCode;
    readonly requestId: string | undefined;
    constructor(userError: boolean, requestId: string | undefined, errors: GraphQLError[]);
    getCode: () => string | undefined;
    getStatusCode: () => number | undefined;
    getRequestId: () => string | undefined;
    isUserError(): boolean;
}
export declare class GraphqlError extends Error {
    constructor(data: any, requestId?: string);
}
export declare type Headers = Pick<NodeFetchHeaders, 'get'>;
export declare class MinimalGraphQLRunner implements GraphQLRunner {
    private readonly authenticator;
    private readonly endpoint;
    private readonly cliDetails;
    constructor(authenticator: Authenticator, endpoint: string, cliDetails: CLIDetails | undefined);
    run<TVariables extends Variables, TResponse>(query: string, variables: TVariables): Promise<{
        requestId: string | undefined;
        response: TResponse;
    }>;
    protected getAuthenticatedClient(endpoint: string, authorizationHeader: AuthorizationHeader): GraphQLClient;
    getHeaders(authorizationHeader: AuthorizationHeader): {
        [key: string]: string;
    };
    private getAttribution;
    private getClientName;
    private getClientVersion;
    private rawRequestWithoutClientError;
    private getRequestId;
}
//# sourceMappingURL=minimal-graphql-runner.d.ts.map