1interface PromiseConstructor { 2 /** 3 * A reference to the prototype. 4 */ 5 readonly prototype: Promise<any>; 6 7 /** 8 * Creates a new Promise. 9 * @param executor A callback used to initialize the promise. This callback is passed two arguments: 10 * a resolve callback used to resolve the promise with a value or the result of another promise, 11 * and a reject callback used to reject the promise with a provided reason or error. 12 */ 13 new <T>(executor: (resolve: (value: T | PromiseLike<T>) => void, reject: (reason?: any) => void) => void): Promise<T>; 14 15 /** 16 * Creates a Promise that is resolved with an array of results when all of the provided Promises 17 * resolve, or rejected when any Promise is rejected. 18 * @param values An array of Promises. 19 * @returns A new Promise. 20 */ 21 all<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>, T10 | PromiseLike<T10>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>; 22 23 /** 24 * Creates a Promise that is resolved with an array of results when all of the provided Promises 25 * resolve, or rejected when any Promise is rejected. 26 * @param values An array of Promises. 27 * @returns A new Promise. 28 */ 29 all<T1, T2, T3, T4, T5, T6, T7, T8, T9>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>, T9 | PromiseLike<T9>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>; 30 31 /** 32 * Creates a Promise that is resolved with an array of results when all of the provided Promises 33 * resolve, or rejected when any Promise is rejected. 34 * @param values An array of Promises. 35 * @returns A new Promise. 36 */ 37 all<T1, T2, T3, T4, T5, T6, T7, T8>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>, T8 | PromiseLike<T8>]): Promise<[T1, T2, T3, T4, T5, T6, T7, T8]>; 38 39 /** 40 * Creates a Promise that is resolved with an array of results when all of the provided Promises 41 * resolve, or rejected when any Promise is rejected. 42 * @param values An array of Promises. 43 * @returns A new Promise. 44 */ 45 all<T1, T2, T3, T4, T5, T6, T7>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>, T7 | PromiseLike<T7>]): Promise<[T1, T2, T3, T4, T5, T6, T7]>; 46 47 /** 48 * Creates a Promise that is resolved with an array of results when all of the provided Promises 49 * resolve, or rejected when any Promise is rejected. 50 * @param values An array of Promises. 51 * @returns A new Promise. 52 */ 53 all<T1, T2, T3, T4, T5, T6>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>, T6 | PromiseLike<T6>]): Promise<[T1, T2, T3, T4, T5, T6]>; 54 55 /** 56 * Creates a Promise that is resolved with an array of results when all of the provided Promises 57 * resolve, or rejected when any Promise is rejected. 58 * @param values An array of Promises. 59 * @returns A new Promise. 60 */ 61 all<T1, T2, T3, T4, T5>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>, T5 | PromiseLike<T5>]): Promise<[T1, T2, T3, T4, T5]>; 62 63 /** 64 * Creates a Promise that is resolved with an array of results when all of the provided Promises 65 * resolve, or rejected when any Promise is rejected. 66 * @param values An array of Promises. 67 * @returns A new Promise. 68 */ 69 all<T1, T2, T3, T4>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>, T4 | PromiseLike<T4>]): Promise<[T1, T2, T3, T4]>; 70 71 /** 72 * Creates a Promise that is resolved with an array of results when all of the provided Promises 73 * resolve, or rejected when any Promise is rejected. 74 * @param values An array of Promises. 75 * @returns A new Promise. 76 */ 77 all<T1, T2, T3>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>, T3 | PromiseLike<T3>]): Promise<[T1, T2, T3]>; 78 79 /** 80 * Creates a Promise that is resolved with an array of results when all of the provided Promises 81 * resolve, or rejected when any Promise is rejected. 82 * @param values An array of Promises. 83 * @returns A new Promise. 84 */ 85 all<T1, T2>(values: readonly [T1 | PromiseLike<T1>, T2 | PromiseLike<T2>]): Promise<[T1, T2]>; 86 87 /** 88 * Creates a Promise that is resolved with an array of results when all of the provided Promises 89 * resolve, or rejected when any Promise is rejected. 90 * @param values An array of Promises. 91 * @returns A new Promise. 92 */ 93 all<T>(values: readonly (T | PromiseLike<T>)[]): Promise<T[]>; 94 95 // see: lib.es2015.iterable.d.ts 96 // all<T>(values: Iterable<T | PromiseLike<T>>): Promise<T[]>; 97 98 /** 99 * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved 100 * or rejected. 101 * @param values An array of Promises. 102 * @returns A new Promise. 103 */ 104 race<T>(values: readonly T[]): Promise<T extends PromiseLike<infer U> ? U : T>; 105 106 // see: lib.es2015.iterable.d.ts 107 // race<T>(values: Iterable<T>): Promise<T extends PromiseLike<infer U> ? U : T>; 108 109 /** 110 * Creates a new rejected promise for the provided reason. 111 * @param reason The reason the promise was rejected. 112 * @returns A new rejected Promise. 113 */ 114 reject<T = never>(reason?: any): Promise<T>; 115 116 /** 117 * Creates a new resolved promise. 118 * @returns A resolved promise. 119 */ 120 resolve(): Promise<void>; 121 122 /** 123 * Creates a new resolved promise for the provided value. 124 * @param value A promise. 125 * @returns A promise whose internal state matches the provided promise. 126 */ 127 resolve<T>(value: T | PromiseLike<T>): Promise<T>; 128} 129 130declare var Promise: PromiseConstructor; 131