import * as plugins from './plugins.js';
import * as types from './types.js';
import { CoreResponse } from './response.js';
import { CoreRequest as AbstractCoreRequest } from '../core_base/request.js';
/**
 * Node.js implementation of Core Request class that handles all HTTP/HTTPS requests
 */
export declare class CoreRequest extends AbstractCoreRequest<types.ICoreRequestOptions, CoreResponse> {
    private requestDataFunc;
    constructor(url: string, options?: types.ICoreRequestOptions, requestDataFunc?: ((req: plugins.http.ClientRequest) => void) | null);
    /**
     * Fire the request and return a CoreResponse
     */
    fire(): Promise<CoreResponse>;
    /**
     * Fire the request and return the raw IncomingMessage
     */
    fireCore(): Promise<plugins.http.IncomingMessage>;
    /**
     * Static factory method to create and fire a request
     */
    static create(url: string, options?: types.ICoreRequestOptions): Promise<CoreResponse>;
}
