interface ClientCredentials {
    merchantId: string;
    merchantKey: string;
    requestIdGenerator: () => string;
}
/**
 * Cliente HTTP responsável por fazer as requisições para a API Cielo.
 */
export declare class HttpClient {
    private readonly credentials;
    private readonly baseUrl;
    constructor(baseUrl: string, credentials: ClientCredentials);
    /**
     * Monta os headers padrão para as requisições Cielo.
     * @param hasBody Indica se a requisição terá corpo (para Content-Type). GET não deve ter.
     * @returns Objeto de HeadersInit pronto para ser usado com fetch.
     */
    private getHeaders;
    /**
     * Processa a resposta HTTP, tratando sucessos e erros.
     */
    private handleResponse;
    /**
     * Realiza uma requisição GET para a API Cielo.
     */
    get<TResponse>(path: string): Promise<TResponse>;
    /**
     * Realiza uma requisição POST para a API Cielo.
     */
    post<TRequest, TResponse>(path: string, body: TRequest): Promise<TResponse>;
    /**
     * Realiza uma requisição PUT para a API Cielo.
     */
    put<TResponse>(path: string, queryParams?: Record<string, string | number | boolean | undefined>, body?: any): Promise<TResponse>;
}
export {};
