///
import http from 'http';
import File from './File';
export declare const enum PayloadType {
Browser = 0,
ReactNative = 1,
Node = 2
}
declare type Payload = BrowserPayload | ReactNativePayload | NodePayload;
declare type BrowserPayload = JsPayload;
declare type NodePayload = JsPayload;
interface JsPayload {
type: PayloadType.Node | PayloadType.Browser;
apiKey: string;
appVersion?: string;
codeBundleId?: string;
minifiedUrl: string;
sourceMap: File;
minifiedFile?: File;
overwrite?: boolean;
}
interface ReactNativePayload {
type: PayloadType.ReactNative;
apiKey: string;
platform: 'ios' | 'android';
appVersion?: string;
codeBundleId?: string;
appBundleVersion?: string;
appVersionCode?: string;
overwrite: boolean;
dev: boolean;
sourceMap: File;
bundle: File;
}
interface RequestOptions {
idleTimeout?: number;
}
export default function request(endpoint: string, payload: Payload, requestOpts: http.RequestOptions, options?: RequestOptions): Promise;
export declare function send(endpoint: string, payload: Payload, requestOpts: http.RequestOptions, options?: RequestOptions): Promise;
export declare function isRetryable(status?: number): boolean;
export declare function fetch(endpoint: string, options?: RequestOptions): Promise;
export {};