import { HalLink, HalResource } from 'hal-types';
import { IRequestHeaders, IResourceSystemProperties, ISystemProperty } from '../interfaces';
import { HttpClientAdapter } from './HttpClientAdapter';
declare class HttpClient {
    entryPoint: string;
    baseURL: string;
    links: {
        [rel: string]: HalLink | HalLink[];
    };
    adapter: HttpClientAdapter;
    systemProperties: ISystemProperty[];
    init(adapter: HttpClientAdapter): void;
    setLinks(links: {
        [rel: string]: HalLink | HalLink[];
    }): void;
    setEntryPoint(entryPoint: string): void;
    extractTemplatedLink(url: string): string;
    tryToLoadSystemProperties(): Promise<IResourceSystemProperties>;
    get(url: string, headers: HeadersInit | IRequestHeaders, json?: boolean): Promise<Response | HalResource | JSON>;
    delete(url: string, headers: HeadersInit | IRequestHeaders): Promise<Response>;
    post(url: string, headers: HeadersInit | IRequestHeaders, body?: {}): Promise<Response>;
    put(url: string, headers: HeadersInit | IRequestHeaders, body?: {}): Promise<Response>;
    private request;
}
declare const httpClient: HttpClient;
export { httpClient };
