| /*! ***************************************************************************** |
| Copyright (c) Microsoft Corporation. All rights reserved. |
| Licensed under the Apache License, Version 2.0 (the "License"); you may not use |
| this file except in compliance with the License. You may obtain a copy of the |
| License at http://www.apache.org/licenses/LICENSE-2.0 |
| |
| THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED |
| WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, |
| MERCHANTABLITY OR NON-INFRINGEMENT. |
| |
| See the Apache Version 2.0 License for specific language governing permissions |
| and limitations under the License. |
| ***************************************************************************** */ |
| |
| |
| |
| /// <reference no-default-lib="true"/> |
| |
| |
| /// <reference lib="es2015.symbol" /> |
| |
| interface SymbolConstructor { |
| /** |
| * A method that returns the default iterator for an object. Called by the semantics of the |
| * for-of statement. |
| */ |
| readonly iterator: symbol; |
| } |
| |
| interface IteratorResult<T> { |
| done: boolean; |
| value: T; |
| } |
| |
| interface Iterator<T> { |
| next(value?: any): IteratorResult<T>; |
| return?(value?: any): IteratorResult<T>; |
| throw?(e?: any): IteratorResult<T>; |
| } |
| |
| interface Iterable<T> { |
| [Symbol.iterator](): Iterator<T>; |
| } |
| |
| interface IterableIterator<T> extends Iterator<T> { |
| [Symbol.iterator](): IterableIterator<T>; |
| } |
| |
| interface Array<T> { |
| /** Iterator */ |
| [Symbol.iterator](): IterableIterator<T>; |
| |
| /** |
| * Returns an iterable of key, value pairs for every entry in the array |
| */ |
| entries(): IterableIterator<[number, T]>; |
| |
| /** |
| * Returns an iterable of keys in the array |
| */ |
| keys(): IterableIterator<number>; |
| |
| /** |
| * Returns an iterable of values in the array |
| */ |
| values(): IterableIterator<T>; |
| } |
| |
| interface ArrayConstructor { |
| /** |
| * Creates an array from an iterable object. |
| * @param iterable An iterable object to convert to an array. |
| */ |
| from<T>(iterable: Iterable<T> | ArrayLike<T>): T[]; |
| |
| /** |
| * Creates an array from an iterable object. |
| * @param iterable An iterable object to convert to an array. |
| * @param mapfn A mapping function to call on every element of the array. |
| * @param thisArg Value of 'this' used to invoke the mapfn. |
| */ |
| from<T, U>(iterable: Iterable<T> | ArrayLike<T>, mapfn: (v: T, k: number) => U, thisArg?: any): U[]; |
| } |
| |
| interface ReadonlyArray<T> { |
| /** Iterator of values in the array. */ |
| [Symbol.iterator](): IterableIterator<T>; |
| |
| /** |
| * Returns an iterable of key, value pairs for every entry in the array |
| */ |
| entries(): IterableIterator<[number, T]>; |
| |
| /** |
| * Returns an iterable of keys in the array |
| */ |
| keys(): IterableIterator<number>; |
| |
| /** |
| * Returns an iterable of values in the array |
| */ |
| values(): IterableIterator<T>; |
| } |
| |
| interface IArguments { |
| /** Iterator */ |
| [Symbol.iterator](): IterableIterator<any>; |
| } |
| |
| interface Map<K, V> { |
| /** Returns an iterable of entries in the map. */ |
| [Symbol.iterator](): IterableIterator<[K, V]>; |
| |
| /** |
| * Returns an iterable of key, value pairs for every entry in the map. |
| */ |
| entries(): IterableIterator<[K, V]>; |
| |
| /** |
| * Returns an iterable of keys in the map |
| */ |
| keys(): IterableIterator<K>; |
| |
| /** |
| * Returns an iterable of values in the map |
| */ |
| values(): IterableIterator<V>; |
| } |
| |
| interface ReadonlyMap<K, V> { |
| /** Returns an iterable of entries in the map. */ |
| [Symbol.iterator](): IterableIterator<[K, V]>; |
| |
| /** |
| * Returns an iterable of key, value pairs for every entry in the map. |
| */ |
| entries(): IterableIterator<[K, V]>; |
| |
| /** |
| * Returns an iterable of keys in the map |
| */ |
| keys(): IterableIterator<K>; |
| |
| /** |
| * Returns an iterable of values in the map |
| */ |
| values(): IterableIterator<V>; |
| } |
| |
| interface MapConstructor { |
| new <K, V>(iterable: Iterable<readonly [K, V]>): Map<K, V>; |
| } |
| |
| interface WeakMap<K extends object, V> { } |
| |
| interface WeakMapConstructor { |
| new <K extends object, V>(iterable: Iterable<[K, V]>): WeakMap<K, V>; |
| } |
| |
| interface Set<T> { |
| /** Iterates over values in the set. */ |
| [Symbol.iterator](): IterableIterator<T>; |
| /** |
| * Returns an iterable of [v,v] pairs for every value `v` in the set. |
| */ |
| entries(): IterableIterator<[T, T]>; |
| /** |
| * Despite its name, returns an iterable of the values in the set, |
| */ |
| keys(): IterableIterator<T>; |
| |
| /** |
| * Returns an iterable of values in the set. |
| */ |
| values(): IterableIterator<T>; |
| } |
| |
| interface ReadonlySet<T> { |
| /** Iterates over values in the set. */ |
| [Symbol.iterator](): IterableIterator<T>; |
| |
| /** |
| * Returns an iterable of [v,v] pairs for every value `v` in the set. |
| */ |
| entries(): IterableIterator<[T, T]>; |
| |
| /** |
| * Despite its name, returns an iterable of the values in the set, |
| */ |
| keys(): IterableIterator<T>; |
| |
| /** |
| * Returns an iterable of values in the set. |
| */ |
| values(): IterableIterator<T>; |
| } |
| |
| interface SetConstructor { |
| new <T>(iterable?: Iterable<T> | null): Set<T>; |
| } |
| |
| interface WeakSet<T extends object> { } |
| |
| interface WeakSetConstructor { |
| new <T extends object = object>(iterable: Iterable<T>): WeakSet<T>; |
| } |
| |
| interface Promise<T> { } |
| |
| interface PromiseConstructor { |
| /** |
| * Creates a Promise that is resolved with an array of results when all of the provided Promises |
| * resolve, or rejected when any Promise is rejected. |
| * @param values An array of Promises. |
| * @returns A new Promise. |
| */ |
| all<TAll>(values: Iterable<TAll | PromiseLike<TAll>>): Promise<TAll[]>; |
| |
| /** |
| * Creates a Promise that is resolved or rejected when any of the provided Promises are resolved |
| * or rejected. |
| * @param values An array of Promises. |
| * @returns A new Promise. |
| */ |
| race<T>(values: Iterable<T | PromiseLike<T>>): Promise<T>; |
| } |
| |
| declare namespace Reflect { |
| function enumerate(target: object): IterableIterator<any>; |
| } |
| |
| interface String { |
| /** Iterator */ |
| [Symbol.iterator](): IterableIterator<string>; |
| } |
| |
| interface Int8Array { |
| [Symbol.iterator](): IterableIterator<number>; |
| /** |
| * Returns an array of key, value pairs for every entry in the array |
| */ |
| entries(): IterableIterator<[number, number]>; |
| /** |
| * Returns an list of keys in the array |
| */ |
| keys(): IterableIterator<number>; |
| /** |
| * Returns an list of values in the array |
| */ |
| values(): IterableIterator<number>; |
| } |
| |
| interface Int8ArrayConstructor { |
| new (elements: Iterable<number>): Int8Array; |
| |
| /** |
| * Creates an array from an array-like or iterable object. |
| * @param arrayLike An array-like or iterable object to convert to an array. |
| * @param mapfn A mapping function to call on every element of the array. |
| * @param thisArg Value of 'this' used to invoke the mapfn. |
| */ |
| from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int8Array; |
| } |
| |
| interface Uint8Array { |
| [Symbol.iterator](): IterableIterator<number>; |
| /** |
| * Returns an array of key, value pairs for every entry in the array |
| */ |
| entries(): IterableIterator<[number, number]>; |
| /** |
| * Returns an list of keys in the array |
| */ |
| keys(): IterableIterator<number>; |
| /** |
| * Returns an list of values in the array |
| */ |
| values(): IterableIterator<number>; |
| } |
| |
| interface Uint8ArrayConstructor { |
| new (elements: Iterable<number>): Uint8Array; |
| |
| /** |
| * Creates an array from an array-like or iterable object. |
| * @param arrayLike An array-like or iterable object to convert to an array. |
| * @param mapfn A mapping function to call on every element of the array. |
| * @param thisArg Value of 'this' used to invoke the mapfn. |
| */ |
| from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8Array; |
| } |
| |
| interface Uint8ClampedArray { |
| [Symbol.iterator](): IterableIterator<number>; |
| /** |
| * Returns an array of key, value pairs for every entry in the array |
| */ |
| entries(): IterableIterator<[number, number]>; |
| |
| /** |
| * Returns an list of keys in the array |
| */ |
| keys(): IterableIterator<number>; |
| |
| /** |
| * Returns an list of values in the array |
| */ |
| values(): IterableIterator<number>; |
| } |
| |
| interface Uint8ClampedArrayConstructor { |
| new (elements: Iterable<number>): Uint8ClampedArray; |
| |
| |
| /** |
| * Creates an array from an array-like or iterable object. |
| * @param arrayLike An array-like or iterable object to convert to an array. |
| * @param mapfn A mapping function to call on every element of the array. |
| * @param thisArg Value of 'this' used to invoke the mapfn. |
| */ |
| from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint8ClampedArray; |
| } |
| |
| interface Int16Array { |
| [Symbol.iterator](): IterableIterator<number>; |
| /** |
| * Returns an array of key, value pairs for every entry in the array |
| */ |
| entries(): IterableIterator<[number, number]>; |
| |
| /** |
| * Returns an list of keys in the array |
| */ |
| keys(): IterableIterator<number>; |
| |
| /** |
| * Returns an list of values in the array |
| */ |
| values(): IterableIterator<number>; |
| } |
| |
| interface Int16ArrayConstructor { |
| new (elements: Iterable<number>): Int16Array; |
| |
| /** |
| * Creates an array from an array-like or iterable object. |
| * @param arrayLike An array-like or iterable object to convert to an array. |
| * @param mapfn A mapping function to call on every element of the array. |
| * @param thisArg Value of 'this' used to invoke the mapfn. |
| */ |
| from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int16Array; |
| } |
| |
| interface Uint16Array { |
| [Symbol.iterator](): IterableIterator<number>; |
| /** |
| * Returns an array of key, value pairs for every entry in the array |
| */ |
| entries(): IterableIterator<[number, number]>; |
| /** |
| * Returns an list of keys in the array |
| */ |
| keys(): IterableIterator<number>; |
| /** |
| * Returns an list of values in the array |
| */ |
| values(): IterableIterator<number>; |
| } |
| |
| interface Uint16ArrayConstructor { |
| new (elements: Iterable<number>): Uint16Array; |
| |
| /** |
| * Creates an array from an array-like or iterable object. |
| * @param arrayLike An array-like or iterable object to convert to an array. |
| * @param mapfn A mapping function to call on every element of the array. |
| * @param thisArg Value of 'this' used to invoke the mapfn. |
| */ |
| from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint16Array; |
| } |
| |
| interface Int32Array { |
| [Symbol.iterator](): IterableIterator<number>; |
| /** |
| * Returns an array of key, value pairs for every entry in the array |
| */ |
| entries(): IterableIterator<[number, number]>; |
| /** |
| * Returns an list of keys in the array |
| */ |
| keys(): IterableIterator<number>; |
| /** |
| * Returns an list of values in the array |
| */ |
| values(): IterableIterator<number>; |
| } |
| |
| interface Int32ArrayConstructor { |
| new (elements: Iterable<number>): Int32Array; |
| |
| /** |
| * Creates an array from an array-like or iterable object. |
| * @param arrayLike An array-like or iterable object to convert to an array. |
| * @param mapfn A mapping function to call on every element of the array. |
| * @param thisArg Value of 'this' used to invoke the mapfn. |
| */ |
| from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Int32Array; |
| } |
| |
| interface Uint32Array { |
| [Symbol.iterator](): IterableIterator<number>; |
| /** |
| * Returns an array of key, value pairs for every entry in the array |
| */ |
| entries(): IterableIterator<[number, number]>; |
| /** |
| * Returns an list of keys in the array |
| */ |
| keys(): IterableIterator<number>; |
| /** |
| * Returns an list of values in the array |
| */ |
| values(): IterableIterator<number>; |
| } |
| |
| interface Uint32ArrayConstructor { |
| new (elements: Iterable<number>): Uint32Array; |
| |
| /** |
| * Creates an array from an array-like or iterable object. |
| * @param arrayLike An array-like or iterable object to convert to an array. |
| * @param mapfn A mapping function to call on every element of the array. |
| * @param thisArg Value of 'this' used to invoke the mapfn. |
| */ |
| from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Uint32Array; |
| } |
| |
| interface Float32Array { |
| [Symbol.iterator](): IterableIterator<number>; |
| /** |
| * Returns an array of key, value pairs for every entry in the array |
| */ |
| entries(): IterableIterator<[number, number]>; |
| /** |
| * Returns an list of keys in the array |
| */ |
| keys(): IterableIterator<number>; |
| /** |
| * Returns an list of values in the array |
| */ |
| values(): IterableIterator<number>; |
| } |
| |
| interface Float32ArrayConstructor { |
| new (elements: Iterable<number>): Float32Array; |
| |
| /** |
| * Creates an array from an array-like or iterable object. |
| * @param arrayLike An array-like or iterable object to convert to an array. |
| * @param mapfn A mapping function to call on every element of the array. |
| * @param thisArg Value of 'this' used to invoke the mapfn. |
| */ |
| from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float32Array; |
| } |
| |
| interface Float64Array { |
| [Symbol.iterator](): IterableIterator<number>; |
| /** |
| * Returns an array of key, value pairs for every entry in the array |
| */ |
| entries(): IterableIterator<[number, number]>; |
| /** |
| * Returns an list of keys in the array |
| */ |
| keys(): IterableIterator<number>; |
| /** |
| * Returns an list of values in the array |
| */ |
| values(): IterableIterator<number>; |
| } |
| |
| interface Float64ArrayConstructor { |
| new (elements: Iterable<number>): Float64Array; |
| |
| /** |
| * Creates an array from an array-like or iterable object. |
| * @param arrayLike An array-like or iterable object to convert to an array. |
| * @param mapfn A mapping function to call on every element of the array. |
| * @param thisArg Value of 'this' used to invoke the mapfn. |
| */ |
| from(arrayLike: Iterable<number>, mapfn?: (v: number, k: number) => number, thisArg?: any): Float64Array; |
| } |