import { EmitterSubscription } from "react-native"; import type { APIClientConfiguration, APIClientErrorEventHandler, APIClientInterface, ClientHeaders, ClientResponse, ProgressPromise, RequestOptions, UploadRequestOptions } from "@philippeweidmann/react-native-network-client"; /** * Configurable client for consuming a REST API */ declare class APIClient implements APIClientInterface { baseUrl: string; config: APIClientConfiguration; onClientErrorSubscription?: EmitterSubscription; constructor(baseUrl: string, config?: APIClientConfiguration); onClientError: (callback: APIClientErrorEventHandler) => void; getHeaders: () => Promise; addHeaders: (headers: ClientHeaders) => Promise; importClientP12: (path: string, password?: string) => Promise; invalidate: () => Promise; head: (endpoint: string, options?: RequestOptions) => Promise; get: (endpoint: string, options?: RequestOptions) => Promise; put: (endpoint: string, options?: RequestOptions) => Promise; post: (endpoint: string, options?: RequestOptions) => Promise; patch: (endpoint: string, options?: RequestOptions) => Promise; delete: (endpoint: string, options?: RequestOptions) => Promise; upload: (endpoint: string, fileUrl: string, options?: UploadRequestOptions) => ProgressPromise; download: (endpoint: string, filePath: string, options?: RequestOptions) => ProgressPromise; } declare function getOrCreateAPIClient(baseUrl: string, config?: APIClientConfiguration, clientErrorEventHandler?: APIClientErrorEventHandler): Promise<{ client: APIClient; created: boolean; }>; export { getOrCreateAPIClient };