/********************************************************************
 * @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-10-14 22:58:04.824
 * @version:     6.1.0
 * @times:       19
 * @lines:       167
 * @copyright:   Copyright © 2023-2025 Kaven. All Rights Reserved.
 * @description: [description]
 * @license:     [license]
 ********************************************************************/
import { ILoggingAgent } from "kaven-basic";
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(logger?: ILoggingAgent): Promise<string | undefined>;
    TryExecuteToJson<T = unknown>(logger?: ILoggingAgent): Promise<T | undefined>;
}
