import { IncomingMessage } from "http";
import type { Credentials, BaseOptions } from "../types";
import type { ChannelCredentialOptions, Client } from "./";
type TransformError = (statusCode: number, statusMessage: string, res: IncomingMessage) => Error | undefined;
export interface HTTPRequestOptions extends BaseOptions {
    headers?: Record<string, string>;
    searchParams?: Record<string, string | undefined>;
    transformError?: TransformError;
}
type HTTPMethod = "GET" | "HEAD" | "POST" | "PUT" | "DELETE" | "CONNECT" | "OPTIONS" | "TRACE" | "PATCH";
export declare class HTTP {
    #private;
    constructor(client: Client, channelCredentials: ChannelCredentialOptions, defaultUserCredentials?: Credentials);
    request: <T = unknown>(method: HTTPMethod, path: string, { searchParams, ...options }: HTTPRequestOptions, body?: string) => Promise<T>;
    private makeRequest;
    private createURL;
    private getChannel;
}
export {};
