type HookSingular = import('before-after-hook').HookSingular type RequestOptions = import('../endpoint/types').RequestOptions export type EndpointParams = import('../endpoint/types').EndpointParams type HTTPError = import('../error/types').HTTPError type Request = import('../request/types').Request type Response = import('../request/types').Response export interface Options { [option: string]: any baseUrl?: string request?: RequestOptions['request'] } export type RequestHook = HookSingular, HTTPError> export interface APIClient { [key: string]: any request: Request requestHook: RequestHook } export type Plugin = (client: APIClient, options: Options) => void export interface APIClientFactory { new (options?: Options): APIClient (options?: Options): APIClient plugins(plugins: Plugin[]): APIClientFactory }