/// <reference types="node" />
import { URL } from "url";
export interface RequestDataFile {
    filename: string;
    mime?: string;
    content: Buffer | string;
}
export declare type RequestData = NodeJS.Dict<string | RequestDataFile>;
declare type RequestHeader = string | number | string[];
interface RequestHeaders extends NodeJS.Dict<RequestHeader> {
}
export declare enum RequestMethod {
    GET = "get",
    POST = "post"
}
declare enum RequestProtocol {
    HTTP = "http",
    HTTPS = "https"
}
declare type RequestURL = string | URL;
interface RequestSettings {
    url?: RequestURL;
    host?: string;
    protocol?: RequestProtocol;
    path?: string;
    method?: RequestMethod;
    data?: RequestData;
    headers?: RequestHeaders;
    encoding?: BufferEncoding | null;
    debug?: boolean;
}
declare type Request = RequestSettings | RequestURL;
export default function request(url: string | URL): Promise<Buffer>;
export default function request(settings: RequestSettings & {
    encoding?: null;
}): Promise<Buffer>;
export default function request(settings: RequestSettings & {
    encoding: BufferEncoding;
}): Promise<string>;
export default function request(settings: Request): Promise<Buffer | string>;
export {};
