import { ClientOptions, RequestOptions, ApidlyRequest, ApidlyResponse, RequestMiddleware, ResponseMiddleware, MiddleWired, EventWired, Callbable } from './types'; import { Endpoint } from './createEndpoint'; export interface Client extends MiddleWired, EventWired { (endpoint: Endpoint, options?: RequestOptions, Data>): Promise; } export declare class Client extends Callbable { private requestInit; constructor(clientOptions: ClientOptions); request(middleware: RequestMiddleware): this; response(middleware: ResponseMiddleware): this; onStart(listener: (url: URL, request: ApidlyRequest) => any): import("evnty").Unsubscribe; onSuccess(listener: (response: ApidlyResponse, url: URL, request: ApidlyRequest) => any): import("evnty").Unsubscribe; onDone(listener: (url: URL, request: ApidlyRequest) => any): import("evnty").Unsubscribe; onError(listener: (error: Error, url: URL, request: ApidlyRequest) => any): import("evnty").Unsubscribe; } declare const _default: (clientOptions: ClientOptions) => Client; export default _default;