import { HttpMethod } from '../models';
import { BodyType } from './Body';
import { HeadersType } from './HeadersType';
import { QueryParamsType } from './QueryParamsType';
export interface TargetOptions {
    url: string;
    query?: QueryParamsType;
    body?: BodyType;
    method?: HttpMethod | string;
    headers?: HeadersType;
    auth?: string;
    serializeQuery?(params: QueryParamsType): string;
}
export declare class Target implements TargetOptions {
    private _parsedURL;
    get parsedURL(): URL;
    private _cachedUrl?;
    get url(): string;
    private set url(value);
    private _method;
    get method(): HttpMethod;
    private set method(value);
    private _queryString?;
    private _query?;
    get queryString(): string;
    get query(): QueryParamsType;
    private set query(value);
    get fragment(): string;
    private _parsedHeaders;
    private _headers?;
    get headers(): HeadersType;
    private set headers(value);
    private _body?;
    private _parsedBody?;
    get body(): BodyType | undefined;
    private set body(value);
    private readonly _serializeQuery;
    get serializeQuery(): (params: QueryParamsType) => string;
    private authId?;
    get auth(): string | undefined;
    private set auth(value);
    constructor({ url, body, query, auth, headers, serializeQuery, method }: TargetOptions);
    text(): Promise<string | undefined>;
    private readonly defaultSerializeQuery;
}
