export declare class Deferred { readonly pr: Promise; /** NOTE: Does not need to be called bound to instance*/ readonly resolve: (value: T) => void; readonly reject: (error: any) => void; readonly getState: () => { hasResolved: true; value: T; } | { hasResolved: false; value?: never; }; constructor(); } export declare namespace Deferred { type Unpack> = T extends Deferred ? U : never; } export declare class VoidDeferred extends Deferred { readonly resolve: () => void; }