import { IHttpResponse, HttpResponse } from './HttpResponse.js';
import { IRequestTime, RequestTime } from './RequestTime.js';
import { ResponseRedirect as LegacyRedirect } from './legacy/request/ArcResponse.js';
export declare const Kind = "Core#HttpResponseRedirect";
/**
 * An information about a redirect
 */
export interface IResponseRedirect {
    kind: typeof Kind;
    /**
     * Redirection response
     */
    response: IHttpResponse;
    /**
     * Redirection timings, if available.
     */
    timings?: IRequestTime;
    /**
     * The timestamp when the request was started (before the connection is made)
     */
    startTime: number;
    /**
     * The timestamp of when the response ended.
     */
    endTime: number;
    /**
     * The URL the request was redirected to
     */
    url: string;
}
export declare class ResponseRedirect {
    kind: typeof Kind;
    /**
     * Redirection response
     */
    response?: HttpResponse;
    /**
     * Redirection timings, if available.
     */
    timings?: RequestTime;
    /**
     * The timestamp when the request was started (before the connection is made)
     */
    startTime: number;
    /**
     * The timestamp of when the response ended.
     */
    endTime: number;
    /**
     * The URL the request was redirected to
     */
    url: string;
    /**
     * Creates a redirect object from basic values.
     * @param url The redirect URL
     * @param response The response object created by the transport
     * @param startTime The time when the request started
     * @param endTime The time when the request ended
     */
    static fromValues(url: string, response: IHttpResponse, startTime?: number, endTime?: number): ResponseRedirect;
    static fromLegacy(redirect: LegacyRedirect): Promise<ResponseRedirect>;
    /**
     * @param input The redirect definition used to restore the state.
     */
    constructor(input?: string | IResponseRedirect);
    /**
     * Creates a new redirect clearing anything that is so far defined.
     */
    new(init: IResponseRedirect): void;
    toJSON(): IResponseRedirect;
}
//# sourceMappingURL=ResponseRedirect.d.ts.map