/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @flow strict * @format */ // These annotations are copy/pasted from the built-in Flow definitions for // Native Promises with some non-standard APIs added in declare class Promise<+R> { constructor( callback: ( resolve: (result?: Promise | R) => void, reject: (error?: any) => void, ) => mixed, ): void; then( onFulfill?: ?(value: R) => Promise | ?U, onReject?: ?(error: any) => Promise | ?U, ): Promise; catch(onReject?: (error: any) => ?Promise | U): Promise; static resolve(object?: Promise | T): Promise; static reject(error?: any): Promise; static all>( promises: T, ): Promise<$TupleMap>; static race(promises: Array>): Promise; // Non-standard APIs // See https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/__forks__/Promise.native.js#L21 finally(onFinally?: ?(value: any) => Promise | U): Promise; done( onFulfill?: ?(value: R) => mixed, onReject?: ?(error: any) => mixed, ): void; static cast(object?: T): Promise; }