import { type IRequestTime, RequestTime } from '@api-client/core/models/RequestTime.js';
export interface ITimingProgressInfo {
    /**
     * The end time of the previous item. This causes the progress to move to the right by this value.
     */
    previous: number;
    /**
     * The item's end value in the progress timeline
     */
    value: number;
    /**
     * The computed value of the progress label.
     */
    label: string;
    /**
     * The name of the value.
     */
    type: string;
    /**
     * The row title
     */
    title: string;
    /**
     * The aria label for the progress element
     */
    ariaLabel: string;
}
export interface ITimingViewData {
    duration: number;
    data: {
        connect: ITimingProgressInfo;
        receive: ITimingProgressInfo;
        send: ITimingProgressInfo;
        wait: ITimingProgressInfo;
        blocked: ITimingProgressInfo;
        dns: ITimingProgressInfo;
        ssl?: ITimingProgressInfo;
    };
}
/**
 * @param timing The timings object
 * @returns The total request time
 */
export declare function computeTimingDuration(timing: RequestTime | IRequestTime): number;
/**
 * Computes the duration of the entire HTTP request based on logs.
 *
 * @param timings The list of timings for all redirects and the final response.
 * @returns The number of milliseconds from the beginning of the request till the end.
 */
export declare function computeRequestDuration(timings: (RequestTime | IRequestTime)[]): number;
/**
 * Computes view data for the request log timings UI.
 * @param timings The ordered list of timings for each redirect and the final request.
 */
export declare function computeTimingsViewData(timings: (RequestTime | IRequestTime)[]): ITimingViewData[];
//# sourceMappingURL=Har.d.ts.map