import { AxiosRequestConfig, Canceler } from 'axios';
import FormData from 'form-data';
import { JSONObject } from '@expo/json-file';
import { Cacher } from './tools/FsCache';
declare type HttpMethod = 'get' | 'post' | 'put' | 'delete';
declare type RequestOptions = AxiosRequestConfig & {
    formData?: FormData;
};
declare type ProgressCallback = (progressPercentage: number) => void;
declare type RetryCallback = (cancel: Canceler) => void;
export default class ApiClient {
    static host: string;
    static port: number;
    static _schemaCaches: {
        [version: string]: Cacher<JSONObject>;
    };
    static setClientName(name: string): void;
    static callMethodAsync(methodName: string, args: any, method?: HttpMethod, requestBody?: any, requestOptions?: RequestOptions, returnEntireResponse?: boolean): Promise<any>;
    static callPathAsync(path: string, method?: HttpMethod, requestBody?: any, requestOptions?: RequestOptions): Promise<any>;
    static xdlSchemaAsync(sdkVersion: string): Promise<JSONObject>;
    static downloadAsync(url: string, outputPath: string, { extract }?: {
        extract?: boolean | undefined;
    }, progressFunction?: ProgressCallback, retryFunction?: RetryCallback): Promise<void>;
}
export {};