using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Implab {
public interface IPromiseBase: ICancellable {
///
/// Check whereather the promise has no more than one dependent promise.
///
bool IsExclusive {
get;
}
///
/// Тип результата, получаемого через данное обещание.
///
Type PromiseType { get; }
bool IsResolved { get; }
bool IsCancelled { get; }
IPromiseBase Then(Action success,ErrorHandler error);
IPromiseBase Then(Action success);
IPromiseBase Error(ErrorHandler error);
IPromiseBase Anyway(Action handler);
IPromiseBase Finally(Action handler);
IPromiseBase Cancelled(Action handler);
IPromise Cast();
void Join();
void Join(int timeout);
}
}