AK-21/Graphite-Industrial-Intelligence
0
1/*! *****************************************************************************2Copyright (c) Microsoft Corporation. All rights reserved.3Licensed under the Apache License, Version 2.0 (the "License"); you may not use4this file except in compliance with the License. You may obtain a copy of the5License at http://www.apache.org/licenses/LICENSE-2.06 7THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY8KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED9WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,10MERCHANTABILITY OR NON-INFRINGEMENT.11 12See the Apache Version 2.0 License for specific language governing permissions13and limitations under the License.14***************************************************************************** */15 16 17/// <reference lib="es2015.symbol" />18/// <reference lib="es2015.iterable" />19 20interface SymbolConstructor {21 /**22 * A method that returns the default async iterator for an object. Called by the semantics of23 * the for-await-of statement.24 */25 readonly asyncIterator: unique symbol;26}27 28interface AsyncIterator<T, TReturn = any, TNext = any> {29 // NOTE: 'next' is defined using a tuple to ensure we report the correct assignability errors in all places.30 next(...[value]: [] | [TNext]): Promise<IteratorResult<T, TReturn>>;31 return?(value?: TReturn | PromiseLike<TReturn>): Promise<IteratorResult<T, TReturn>>;32 throw?(e?: any): Promise<IteratorResult<T, TReturn>>;33}34 35interface AsyncIterable<T, TReturn = any, TNext = any> {36 [Symbol.asyncIterator](): AsyncIterator<T, TReturn, TNext>;37}38 39/**40 * Describes a user-defined {@link AsyncIterator} that is also async iterable.41 */42interface AsyncIterableIterator<T, TReturn = any, TNext = any> extends AsyncIterator<T, TReturn, TNext> {43 [Symbol.asyncIterator](): AsyncIterableIterator<T, TReturn, TNext>;44}45 46/**47 * Describes an {@link AsyncIterator} produced by the runtime that inherits from the intrinsic `AsyncIterator.prototype`.48 */49interface AsyncIteratorObject<T, TReturn = unknown, TNext = unknown> extends AsyncIterator<T, TReturn, TNext> {50 [Symbol.asyncIterator](): AsyncIteratorObject<T, TReturn, TNext>;51}52 