/********************************************************************
 * @author:      Kaven
 * @email:       kaven@wuwenkai.com
 * @website:     http://blog.kaven.xyz
 * @file:        [Kaven-Utils] /src/KavenRequest.ts
 * @create:      2023-12-08 10:56:19.378
 * @modify:      2025-05-21 16:59:03.845
 * @version:     5.4.5
 * @times:       16
 * @lines:       168
 * @copyright:   Copyright © 2023-2025 Kaven. All Rights Reserved.
 * @description: [description]
 * @license:     [license]
 ********************************************************************/
import { OutgoingHttpHeader } from "node:http";
import { KavenRequestResult } from "./KavenRequestResult.js";
/**
 * @since 5.4.0
 * @version 2025-05-21
 */
export declare class KavenRequest {
    private readonly options;
    private headers?;
    Url: string;
    RequestData?: unknown;
    ResponseEncoding?: BufferEncoding;
    constructor(url: string);
    get IsHttps(): boolean | undefined;
    ContainsHeader(name: string): boolean;
    UpdateHeader(name: string, value: OutgoingHttpHeader): void;
    UpdateHeaderIfNotExists(name: string, value: OutgoingHttpHeader): boolean;
    Execute<T = unknown>(timeout?: number): Promise<KavenRequestResult<T>>;
    TryExecuteToText(): Promise<string | undefined>;
    TryExecuteToJson<T = unknown>(): Promise<T | undefined>;
}
