/**
 * Base HTTP Client for SFCC API requests
 *
 * This module provides a foundation for making authenticated HTTP requests to SFCC APIs.
 * It handles common concerns like authentication, request/response formatting, and error handling.
 */
import { Logger } from '../../utils/logger.js';
/**
 * HTTP request options interface
 */
export interface HttpRequestOptions extends RequestInit {
    headers?: Record<string, string>;
}
/**
 * Base HTTP client for SFCC API communication
 */
export declare abstract class BaseHttpClient {
    protected baseUrl: string;
    protected logger: Logger;
    constructor(baseUrl: string, loggerContext: string);
    /**
     * Get authentication headers - must be implemented by subclasses
     */
    protected abstract getAuthHeaders(): Promise<Record<string, string>>;
    /**
     * Handle authentication errors - can be overridden by subclasses
     */
    protected handleAuthError(): Promise<void>;
    /**
     * Make an authenticated HTTP request
     */
    protected makeRequest<T>(endpoint: string, options?: HttpRequestOptions): Promise<T>;
    /**
     * GET request
     */
    protected get<T>(endpoint: string): Promise<T>;
    /**
     * POST request
     */
    protected post<T>(endpoint: string, data?: any): Promise<T>;
    /**
     * PUT request
     */
    protected put<T>(endpoint: string, data?: any): Promise<T>;
    /**
     * PATCH request
     */
    protected patch<T>(endpoint: string, data?: any): Promise<T>;
    /**
     * DELETE request
     */
    protected delete<T>(endpoint: string): Promise<T>;
}
//# sourceMappingURL=http-client.d.ts.map