export interface HttpRequestOptions {
    body?: Buffer | string | undefined;
    followRedirects?: boolean | undefined;
    headers?: Record<string, string> | undefined;
    maxRedirects?: number | undefined;
    method?: string | undefined;
    retries?: number | undefined;
    retryDelay?: number | undefined;
    timeout?: number | undefined;
}
export interface HttpResponse {
    arrayBuffer(): ArrayBuffer;
    body: Buffer;
    headers: Record<string, string | string[] | undefined>;
    json<T = unknown>(): T;
    ok: boolean;
    status: number;
    statusText: string;
    text(): string;
}
export interface HttpDownloadOptions {
    headers?: Record<string, string> | undefined;
    onProgress?: ((downloaded: number, total: number) => void) | undefined;
    retries?: number | undefined;
    retryDelay?: number | undefined;
    timeout?: number | undefined;
}
export interface HttpDownloadResult {
    path: string;
    size: number;
}
/**
 * Make an HTTP/HTTPS request with retry logic and redirect support.
 * Provides a fetch-like API using Node.js native http/https modules.
 * @throws {Error} When all retries are exhausted or non-retryable error occurs.
 */
export declare function httpRequest(url: string, options?: HttpRequestOptions | undefined): Promise<HttpResponse>;
/**
 * Download a file from a URL to a local path with retry logic and progress callbacks.
 * Uses streaming to avoid loading entire file in memory.
 * @throws {Error} When all retries are exhausted or download fails.
 */
export declare function httpDownload(url: string, destPath: string, options?: HttpDownloadOptions | undefined): Promise<HttpDownloadResult>;
/**
 * Perform a GET request and parse JSON response.
 * @throws {Error} When request fails or JSON parsing fails.
 */
export declare function httpGetJson<T = unknown>(url: string, options?: HttpRequestOptions | undefined): Promise<T>;
/**
 * Perform a GET request and return text response.
 * @throws {Error} When request fails.
 */
export declare function httpGetText(url: string, options?: HttpRequestOptions | undefined): Promise<string>;
