// @flow declare class Class0 { static $call(message?: string): Class0; static captureStackTrace(target: Object, constructor?: Function): void; static prepareStackTrace: (err: Class0, stack: Array) => mixed; static stackTraceLimit: number; columnNumber?: number; description?: string; fileName?: string; lineNumber?: number; message: string; name: string; number?: number; stack: string; constructor(message?: mixed): void; toString(): string; } declare export class ZalgoPromise { static all>(promises: X): ZalgoPromise; static asyncReject(error: mixed): ZalgoPromise; static delay(delay: number): ZalgoPromise; static flush(): ZalgoPromise; static hash(promises: O): ZalgoPromise; static isPromise(value: mixed): boolean; static map(items: Array, method: (_: T) => ZalgoPromise | X): ZalgoPromise>; static onPossiblyUnhandledException(handler: (err: mixed) => void): {cancel: () => void}; static reject(error: mixed): ZalgoPromise; static resolve(value: X | ZalgoPromise): ZalgoPromise; static try>(method: (...args: A) => ZalgoPromise | Y, context: ?C, args: ?A): ZalgoPromise; dispatching: boolean; error: mixed; errorHandled: boolean; handlers: Array<{onError: void | (error: mixed) => mixed, onSuccess: void | (result: R) => mixed, promise: ZalgoPromise}>; rejected: boolean; resolved: boolean; stack: string; value: R; asyncReject(error: mixed): ZalgoPromise; catch(onError: (error: mixed) => ZalgoPromise | Y): ZalgoPromise; constructor(handler: ?(resolve: (result: R) => void, reject: (error: mixed) => void) => void): any; dispatch(): any; finally(onFinally: () => mixed): ZalgoPromise; reject(error: mixed): ZalgoPromise; resolve(result: R): ZalgoPromise; then(onSuccess: void | (result: R) => ZalgoPromise | Y, onError: void | (error: mixed) => ZalgoPromise | Y): ZalgoPromise; timeout(time: number, err: ?Class0): ZalgoPromise; toPromise(): Class> | Class | Promise<+R>; }