using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Implab { public interface IPromise: IPromiseBase { new T Join(); new T Join(int timeout); IPromise Then(ResultHandler success, ErrorHandler error); IPromise Then(ResultHandler success, ErrorHandler error); IPromise Then(ResultHandler success); new IPromise Error(ErrorHandler error); IPromise Error(ErrorHandler error); IPromise Map(ResultMapper mapper, ErrorHandler error); IPromise Map(ResultMapper mapper); IPromise Chain(ChainedOperation chained, ErrorHandler error); IPromise Chain(ChainedOperation chained); new IPromise Cancelled(Action handler); new IPromise Finally(Action handler); new IPromise Anyway(Action handler); } }