/*! ***************************************************************************** Copyright © 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 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 path=“lib.es2015.symbol.d.ts” />
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 array of key, value pairs for every entry in the array */ entries(): IterableIterator<[number, T]>; /** * Returns an list of keys in the array */ keys(): IterableIterator<number>; /** * Returns an list 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. * @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>, mapfn: (v: T, k: number) => U, thisArg?: any): Array<U>; /** * Creates an array from an iterable object. * @param iterable An iterable object to convert to an array. */ from<T>(iterable: Iterable<T>): Array<T>;
}
interface ReadonlyArray<T> {
/** Iterator */ [Symbol.iterator](): IterableIterator<T>; /** * Returns an array of key, value pairs for every entry in the array */ entries(): IterableIterator<[number, T]>; /** * Returns an list of keys in the array */ keys(): IterableIterator<number>; /** * Returns an list of values in the array */ values(): IterableIterator<T>;
}
interface IArguments {
/** Iterator */ [Symbol.iterator](): IterableIterator<any>;
}
interface Map<K, V> {
[Symbol.iterator](): IterableIterator<[K,V]>; entries(): IterableIterator<[K, V]>; keys(): IterableIterator<K>; values(): IterableIterator<V>;
}
interface MapConstructor {
new <K, V>(iterable: Iterable<[K, V]>): Map<K, V>;
}
interface WeakMap<K, V> { }
interface WeakMapConstructor {
new <K, V>(iterable: Iterable<[K, V]>): WeakMap<K, V>;
}
interface Set<T> {
[Symbol.iterator](): IterableIterator<T>; entries(): IterableIterator<[T, T]>; keys(): IterableIterator<T>; values(): IterableIterator<T>;
}
interface SetConstructor {
new <T>(iterable: Iterable<T>): Set<T>;
}
interface WeakSet<T> { }
interface WeakSetConstructor {
new <T>(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: any): IterableIterator<any>;
}
interface String {
/** Iterator */ [Symbol.iterator](): IterableIterator<string>;
}
/**
* A typed array of 8-bit integer values. The contents are initialized to 0. If the requested * number of bytes could not be allocated an exception is raised. */
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;
}
/**
* A typed array of 8-bit unsigned integer values. The contents are initialized to 0. If the * requested number of bytes could not be allocated an exception is raised. */
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;
}
/**
* A typed array of 8-bit unsigned integer (clamped) values. The contents are initialized to 0. * If the requested number of bytes could not be allocated an exception is raised. */
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;
}
/**
* A typed array of 16-bit signed integer values. The contents are initialized to 0. If the * requested number of bytes could not be allocated an exception is raised. */
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;
}
/**
* A typed array of 16-bit unsigned integer values. The contents are initialized to 0. If the * requested number of bytes could not be allocated an exception is raised. */
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;
}
/**
* A typed array of 32-bit signed integer values. The contents are initialized to 0. If the * requested number of bytes could not be allocated an exception is raised. */
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;
}
/**
* A typed array of 32-bit unsigned integer values. The contents are initialized to 0. If the * requested number of bytes could not be allocated an exception is raised. */
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;
}
/**
* A typed array of 32-bit float values. The contents are initialized to 0. If the requested number * of bytes could not be allocated an exception is raised. */
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;
}
/**
* A typed array of 64-bit float values. The contents are initialized to 0. If the requested * number of bytes could not be allocated an exception is raised. */
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;
}