import type http from 'http';
import { IProperty } from '../../models/Property.js';
interface RawValue {
    name: string;
    value: string;
    enabled: boolean;
}
/**
 * The same interface as Web platform's Headers but without
 * CORS restrictions.
 */
export declare class Headers {
    /**
     * The keys are canonical keys and the values are the input values.
     */
    _map: Record<string, RawValue>;
    /**
     * @param headers The headers to parse.
     */
    constructor(headers?: string | Record<string, string> | Headers | http.IncomingHttpHeaders);
    /**
     * Adds value to existing header or creates new header
     */
    append(name: string, value: string | string[] | undefined, enabled?: boolean): void;
    /**
     * Removes a header from the list of headers.
     * @param name The header name
     */
    delete(name: string): void;
    /**
     * Returns the current value of the header
     * @param name Header name
     */
    get(name: string): string | undefined;
    /**
     * Checks if the header exists.
     */
    has(name: string): boolean;
    /**
     * Creates a new header. If the header exist it replaces the value.
     */
    set(name: string, value: string, enabled?: boolean): void;
    /**
     * Iterates over each header.
     */
    forEach(callback: (value: string, name: string, enabled: boolean, headers: Headers) => void, thisArg?: unknown): void;
    /**
     * Calls a defined callback function on each element of the headers, and returns an array that contains the results.
     *
     * @param callbackfn A function that accepts up to two arguments.
     *  The map method calls the callbackfn function one time for each header.
     * @param thisArg An object to which the `this` keyword can refer in the callbackfn function.
     *  If thisArg is omitted, undefined is used as the this value.
     */
    map<U>(callbackfn: (value: string, name: string, enabled: boolean) => U, thisArg?: unknown): U[];
    /**
     * @return The headers HTTP string
     */
    toString(): string;
    /**
     * @returns The HTTP headers string with `#` marks when the header is disabled
     */
    toRawString(): string;
    /**
     * @param list The Property list to create the Headers from.
     */
    static fromPropertyArray(list: IProperty[]): Headers;
    /**
     * Transforms current headers list to property list.
     */
    toPropertyArray(): IProperty[];
    /**
     * Generates a map of header that can be applied to the `Request` object
     */
    toJSON(): Record<string, string>;
    protected _generateString(withDisabled?: boolean): string;
    /**
     * Iterates over keys.
     */
    keys(): IterableIterator<string>;
    /**
     * Iterates over values.
     */
    values(): IterableIterator<string>;
    /**
     * Iterates over headers.
     */
    entries(): IterableIterator<string[]>;
    /**
     * Iterates over headers.
     */
    [Symbol.iterator](): IterableIterator<string[]>;
}
export {};
//# sourceMappingURL=Headers.d.ts.map