import { IncomingHttpHeaders } from 'http';
import { CurlCode } from 'node-libcurl';
import { HttpVerb, Options } from './types';
interface RequestInputs {
    method: HttpVerb;
    url: string;
    options: Options;
}
/**
 * Handles query string parameters in a URL by modifying or appending them
 * based on the provided object.
 *
 * Arrays of primitives, e.g. { quizIds: [1,2,3] }, will be of the form:
 *   https://google.com.au/?quizIds%5B0%5D=0&quizIds%5B1%5D=1&quizIds%5B2%5D=2
 *   i.e. https://www.google.com.au/?quizIds[0]=0&quizIds[1]=1&quizIds[2]=2
 *
 * @param {string} url - The URL to handle query string parameters for.
 * @param {Object.<string, any>} qs - query string parameters to modify or append.
 * @returns {string} The modified URL with the updated query string parameters.
 */
export declare const handleQs: (url: string, qs: {
    [key: string]: any;
}) => string;
/**
 * Parses incoming HTTP headers to an array of formatted strings.
 *
 * @param {IncomingHttpHeaders} headers - The header object to parse.
 * @returns {string[]} An array of formatted header strings.
 */
export declare const parseIncomingHeaders: (headers?: IncomingHttpHeaders) => string[];
/**
 * Parses an array of header lines as IncomingHttpHeaders.
 *
 * @param {string[]} headerLines - An array of header lines to parse.
 * @returns {IncomingHttpHeaders} An object containing parsed headers.
 */
export declare const parseReturnedHeaders: (headerLines: string[]) => IncomingHttpHeaders;
/**
 * Checks CURL code and throws a `CurlError` if it indicates failure.
 *
 * @param {CurlCode} code - The CURL error code to check.
 * @param {RequestInputs} requestInputs - input parameters for the CURL request.
 * @throws {CurlError} Throws a `CurlError` if the CURL code indicates failure.
 */
export declare const checkValidCurlCode: (code: CurlCode, requestInputs: RequestInputs) => void;
/**
 * Checks the status code and body of an HTTP response
 *
 * @param {number} statusCode - The status code of the HTTP response.
 * @param {Buffer} body - The body of the HTTP response.
 * @throws {Error} if the status code is >= 300.
 */
export declare const checkValidStatusCode: (statusCode: number, body: Buffer) => void;
export {};
