import { ISerializablePayload, SerializablePayload } from './SerializablePayload.js';
import { HTTPResponse as LegacyHttpResponse } from './legacy/request/ArcResponse.js';
export interface IHttpResponse extends ISerializablePayload {
    kind?: string;
    /**
     * The response status code
     */
    status: number;
    /**
     * The reason part of the status message
     */
    statusText?: string;
    /**
     * The response headers
     */
    headers?: string;
}
export declare class HttpResponse extends SerializablePayload {
    kind: string;
    /**
     * The response status code
     */
    status: number;
    /**
     * The reason part of the status message
     */
    statusText?: string;
    /**
     * The response headers
     */
    headers?: string;
    static fromValues(status: number, statusText?: string, headers?: string): HttpResponse;
    static fromLegacy(response: LegacyHttpResponse): Promise<HttpResponse>;
    /**
     * @param input The response definition used to restore the state.
     */
    constructor(input?: string | IHttpResponse);
    /**
     * Creates a new response clearing anything that is so far defined.
     *
     * Note, this throws an error when the object is not a response.
     */
    new(init: IHttpResponse): void;
    /**
     * Checks whether the input is a definition of an HTTP response.
     */
    static isHttpResponse(input: unknown): boolean;
    toJSON(): IHttpResponse;
    /**
     * A shortcut function to create an instance from a response object and to read the payload of it as string.
     */
    static readPayloadAsString(info: IHttpResponse): Promise<string | undefined>;
}
//# sourceMappingURL=HttpResponse.d.ts.map