import { IHttpResponse, HttpResponse } from './HttpResponse.js';
import { IRequestTime, RequestTime } from './RequestTime.js';
import { IResponseAuthorization, ResponseAuthorization } from './ResponseAuthorization.js';
import { Response as LegacyResponse } from './legacy/request/ArcResponse.js';
/**
 * An HTTP response object.
 */
export interface IResponse extends IHttpResponse {
    /**
     * The request timings.
     * Some HTTP clients may not give this information.
     */
    timings?: IRequestTime;
    /**
     * The total loading time (from sending the request to receive the last byte)
     */
    loadingTime: number;
    /**
     * The authentication request from the server.
     */
    auth?: IResponseAuthorization;
}
export declare class Response extends HttpResponse {
    /**
     * The request timings.
     * Some HTTP clients may not give this information.
     */
    timings?: RequestTime;
    /**
     * The total loading time (from sending the request to receive the last byte)
     */
    loadingTime: number;
    /**
     * The authentication request from the server.
     */
    auth?: ResponseAuthorization;
    static fromValues(status: number, statusText?: string, headers?: string): Response;
    static fromLegacy(input: LegacyResponse): Promise<Response>;
    /**
     * @param input The response definition used to restore the state.
     */
    constructor(input?: string | IResponse);
    /**
     * Creates a new response clearing anything that is so far defined.
     */
    new(init: IResponse): void;
    toJSON(): IResponse;
    /**
     * Checks whether the object (JSON Object) is an Error response.
     */
    static isErrorResponse(input: unknown): boolean;
    /**
     * Creates the RequestTime object from the passed object.
     */
    setTimings(timings: IRequestTime): void;
    /**
     * Sets the authorization data on the response.
     */
    setAuth(auth: IResponseAuthorization): void;
}
//# sourceMappingURL=Response.d.ts.map