export declare type ApiError = { code?: string; message: string; }; declare type HttpResponsePayload = { status: number; headers: Headers; }; export declare type HttpResponseOk = HttpResponsePayload & { ok: true; body: T; }; export declare type HttpResponseError = HttpResponsePayload & { ok: false; error: T; }; export declare type HttpResponse = HttpResponseOk | HttpResponseError; export declare type Query = Record; export declare type RequestOptions = Omit & { method: string; headers?: Record; }; export declare type MethodRequestOptions = Omit; export declare type DefaultRequestOptions = Omit; export declare type DefaultRequestOptionsGetter = () => DefaultRequestOptions | Promise; export declare type MiddlewareRequestInfo = { url: string; timestamp: string; options: Omit & { headers: Headers; }; }; export declare type HttpResponseMiddleware = (response: HttpResponse, requestInfo: MiddlewareRequestInfo) => HttpResponse | Promise>; export interface Http { get(url: string, query?: Query, options?: MethodRequestOptions): Promise>; post(url: string, body: object, options?: MethodRequestOptions, query?: Query): Promise>; put(url: string, body: object, options?: MethodRequestOptions): Promise>; remove(url: string, options?: MethodRequestOptions): Promise>; patch(url: string, body: object, options?: MethodRequestOptions): Promise>; } export {};