import { HttpMethod } from '../enum';
import { HttpContext, HttpContextToken } from './http-context';
export interface HttpRequestProps<HttpRequestBodyT> {
    baseUrl: string;
    body?: HttpRequestBodyT;
    credentials?: RequestCredentials;
    headers?: HeadersInit;
    maxAge?: number;
    method: HttpMethod;
    queryParams?: Record<string, string>;
    relativeUrl: string;
    signal?: AbortSignal;
    context?: HttpContext;
}
export declare class HttpRequest<HttpRequestBodyT> implements HttpRequestProps<HttpRequestBodyT> {
    /**
     * The base url of the remote call. The subpath is
     * relative to the base url.
     */
    private _baseUrl;
    /**
     * The relative url of the request to be concatenated
     * to the base url.
     */
    private _relativeUrl;
    /**
     * The request body.
     */
    private _body?;
    /**
     * The request credentials.
     */
    private _credentials?;
    /**
     * The request headers.
     */
    private _headers?;
    /**
     * The request max age (in seconds).
     */
    private _maxAge;
    /**
     * The request http method.
     */
    private _method;
    /**
     * The request query params.
     */
    private _queryParams?;
    /**
     * The request abort signal.
     */
    private _signal?;
    /**
     * The request context storing arbitrary user defined data.
     */
    private _context?;
    constructor(requestOpts: HttpRequestProps<HttpRequestBodyT>);
    get baseUrl(): string;
    get body(): HttpRequestBodyT | undefined;
    get credentials(): RequestCredentials | undefined;
    get headers(): HeadersInit | undefined;
    get maxAge(): number | undefined;
    get method(): HttpMethod;
    get queryParams(): Record<string, string> | undefined;
    get relativeUrl(): string;
    get signal(): AbortSignal | undefined;
    get url(): string;
    get serializedQueryParams(): string;
    get urlWithParams(): string;
    get context(): HttpContext | undefined;
    getContextValue<ContextTokenValueT>(token: HttpContextToken<ContextTokenValueT>): ContextTokenValueT | undefined;
}
