import { IHttpRequest, HttpRequest, IBaseHttpRequest } from './HttpRequest.js';
import { TransportRequest as LegacyTransportRequest } from './legacy/request/ArcRequest.js';
export interface IBaseSentRequest extends IBaseHttpRequest {
    /**
     * The HTTP message sent to the server (full message).
     * Some HTTP clients may not give this information.
     */
    httpMessage?: string;
    /**
     * The timestamp when the request was started (before the connection is made)
     */
    startTime: number;
    /**
     * The timestamp of when the response ended.
     * This is always set when the response is ready. May not be set when the request is ongoing.
     */
    endTime?: number;
}
/**
 * An interface describing a request made by the HTTP transport.
 * Each transport used by API Client must return this structure in the response event.
 * This is not a replacement for the editor request that also has to be returned.
 *
 * Another difference is that this headers contains a final list of headers sent to the
 * server, including default headers, content-length, authorization, and so on.
 */
export interface ISentRequest extends IHttpRequest, IBaseSentRequest {
}
/**
 * A class that describes a request that has been sent by the transport library
 * to the remote machine. It contains the base HTTP request properties plus
 * the sent message and start and end time.
 */
export declare class SentRequest extends HttpRequest {
    /**
     * The HTTP message sent to the server (full message).
     * Some HTTP clients may not give this information.
     */
    httpMessage?: string;
    /**
     * The timestamp when the request was started (before the connection is made)
     */
    startTime: number;
    /**
     * The timestamp of when the response ended.
     * When `0` then the requests is still being transported.
     */
    endTime: number;
    static fromBaseValues(values: IBaseSentRequest): SentRequest;
    static fromLegacy(input: LegacyTransportRequest): Promise<SentRequest>;
    /**
     * @param input The request definition used to restore the state.
     */
    constructor(input?: string | ISentRequest);
    /**
     * Creates a new sent request clearing anything that is so far defined.
     */
    new(init: ISentRequest): void;
    toJSON(): ISentRequest;
}
//# sourceMappingURL=SentRequest.d.ts.map