import { AxiosRequestConfig } from "axios";
import { Logger } from "winston";
import { CacheManager } from "../cache/cache-manager";
import { ClientOptions } from "../interfaces/client-options";
/**
 * 🌐 Base HTTP client for making API requests
 */
export declare class HttpClient {
    /**
     * 🔄 Axios instance
     */
    private client;
    /**
     * 🔑 API key
     */
    private apiKey;
    /**
     * 📝 Logger instance
     */
    private logger;
    /**
     * 🧠 Cache manager
     */
    private cacheManager;
    /**
     * Create a new HTTP client
     *
     * @param options - Client options
     * @param logger - Logger instance
     * @param cacheManager - Cache manager
     */
    constructor(options: ClientOptions, logger: Logger, cacheManager: CacheManager);
    /**
     * 🔍 Send a GET request
     *
     * @param endpoint - API endpoint
     * @param params - Query parameters
     * @param config - Axios request config
     * @param enableCache - Whether to use caching for this request
     * @returns Promise with response data
     */
    get<T>(endpoint: string, params?: Record<string, any>, config?: AxiosRequestConfig, enableCache?: boolean): Promise<T>;
    /**
     * 📤 Send a POST request
     *
     * @param endpoint - API endpoint
     * @param data - Request body data
     * @param params - Query parameters
     * @param config - Axios request config
     * @returns Promise with response data
     */
    post<T>(endpoint: string, data?: any, params?: Record<string, any>, config?: AxiosRequestConfig): Promise<T>;
    /**
     * 🧹 Clear the cache for a specific endpoint
     *
     * @param endpoint - API endpoint
     * @param params - Query parameters (excluding API key)
     */
    clearCache(endpoint: string, params?: Record<string, any>): void;
    /**
     * 🧹 Clear the entire cache
     */
    clearAllCache(): void;
}
