// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // See LICENSE.txt for license information. import type { APIClientConfiguration, ClientHeaders, ClientResponse, RequestOptions, UploadRequestOptions, } from "./APIClient"; export enum APIClientEvents { DOWNLOAD_PROGRESS = "APIClient-DownloadProgress", UPLOAD_PROGRESS = "APIClient-UploadProgress", CLIENT_ERROR = "APIClient-Error", } export enum RetryTypes { EXPONENTIAL_RETRY = "exponential", LINEAR_RETRY = "linear", } type APIClientConstants = { EVENTS: typeof APIClientEvents; RETRY_TYPES: typeof RetryTypes; }; export interface NativeAPIClient extends NativeModule { getConstants(): APIClientConstants; head( baseUrl: string, endpoint: string | null, options?: RequestOptions ): Promise; get( baseUrl: string, endpoint: string | null, options?: RequestOptions ): Promise; put( baseUrl: string, endpoint: string | null, options?: RequestOptions ): Promise; post( baseUrl: string, endpoint: string | null, options?: RequestOptions ): Promise; patch( baseUrl: string, endpoint: string | null, options?: RequestOptions ): Promise; delete( baseUrl: string, endpoint: string | null, options?: RequestOptions ): Promise; upload( baseUrl: string, endpoint: string | null, fileUrl: string, taskId: string, options?: UploadRequestOptions ): Promise; download( baseUrl: string, endpoint: string | null, filePath: string, taskId: string, options?: RequestOptions ): Promise; cancelRequest(taskId: string): void; createClientFor( baseUrl: string, config?: APIClientConfiguration ): Promise; getClientHeadersFor(baseUrl: string): Promise; addClientHeadersFor(baseUrl: string, headers: ClientHeaders): Promise; importClientP12For( baseUrl: string, path: string, password?: string ): Promise; invalidateClientFor(baseUrl: string): Promise; }