import { Observable } from 'rxjs/Observable'; import { SDKFetch, SDKFetchOptions } from './SDKFetch'; interface PollingOptions { /** * 最大轮询数 */ maxTimes?: number; /** * 轮询间隔 */ interval?: number; /** * 最大轮询间隔 */ maxInterval?: number; /** * 轮询间隔步长 */ intervalSteps?: number; } export interface AsyncJobOptions extends AsyncJobCallbacks { timeoutSeconds?: number; readySid?: string; pollingOptions?: PollingOptions; } interface AsyncJobCallbacks { onPending?: () => void; onFulfilled?: (res: T) => void; onRejected?: (e: Error) => void; } declare type Options = SDKFetchOptions & AsyncJobOptions; export declare class SDKAsyncJob { private fetch; constructor(fetch: SDKFetch); get(path: string, query?: Object, options?: Options): Observable; post(path: string, body?: any, options?: Options): Observable; put(path: string, body?: any, options?: Options): Observable; delete(path: string, body?: any, options?: Options): Observable; private appendQueryToUrl; private handleRes; private waitingForJobDone; private polling; private getAsyncJobResult; /** * 判断资源是否需要异步等待 */ private isAsyncResult; private normalizeQuery; } export {};