///
import { JSONObject, JSONValue } from '@expo/json-file';
import { AxiosRequestConfig } from 'axios';
import FormData from 'form-data';
export declare class TurtleApiError extends Error {
readonly name = "TurtleApiError";
code: string;
details?: JSONValue;
serverStack?: string;
readonly _isApiError = true;
constructor(message: string, code?: string);
}
declare type RequestOptions = {
httpMethod: 'get' | 'post' | 'put' | 'delete';
queryParameters?: QueryParameters;
body?: JSONObject;
};
declare type QueryParameters = {
[key: string]: string | number | boolean | null | undefined;
};
declare type TurtleApiClientOptions = {
sessionSecret: string;
};
export default class TurtleApiClient {
sessionSecret: string;
static clientForUser(sessionSecret: string): TurtleApiClient;
constructor(options: TurtleApiClientOptions);
getAsync(methodName: string, args?: QueryParameters, extraOptions?: Partial): Promise;
postAsync(methodName: string, data?: any, extraOptions?: Partial): Promise;
putAsync(methodName: string, data: JSONObject, extraOptions?: Partial): Promise;
deleteAsync(methodName: string, extraOptions?: Partial): Promise;
_requestAsync(methodName: string, options: RequestOptions, extraRequestOptions?: Partial): Promise;
uploadFile(tarPath: string): Promise;
handleRequest(reqOptions: AxiosRequestConfig): Promise;
convertFormDataToBuffer(formData: FormData): Promise<{
data: Buffer;
}>;
}
export {};