import { AbortableRequest, Headers, RequestHandler } from './http';
import { LoggerFacade } from '../../logging/logger';
import { Platform } from '../../platform_support';
/**
 * Handles sending requests and receiving responses over HTTP via NodeJS http module
 */
export declare class NodeRequestHandler implements RequestHandler {
    private readonly logger?;
    private readonly timeout;
    constructor(opt?: {
        logger?: LoggerFacade;
        timeout?: number;
    });
    /**
     * Builds an XMLHttpRequest
     * @param requestUrl Fully-qualified URL to which to send the request
     * @param headers List of headers to include in the request
     * @param method HTTP method to use
     * @param data? stringified version of data to POST, PUT, etc
     * @returns AbortableRequest contains both the response Promise and capability to abort()
     */
    makeRequest(requestUrl: string, headers: Headers, method: string, data?: string): AbortableRequest;
    /**
     * Parses a URL into its constituent parts
     * @param url URL object to parse
     * @private
     * @returns http.RequestOptions Standard request options dictionary compatible with both http and https
     */
    private getRequestOptionsFromUrl;
    /**
     * Parses headers from an http response
     * @param incomingMessage Incoming response message to parse
     * @private
     * @returns Headers Dictionary of headers without duplicates
     */
    private createHeadersFromNodeIncomingMessage;
    /**
     * Sends a built request handling response, errors, and events around the transmission
     * @param request Request to send
     * @private
     * @returns AbortableRequest with simplified response promise
     */
    private getAbortableRequestFromRequest;
}
export declare const __platforms: Platform[];
