///
import tsd = require('typescript-deferred');
var t1: tsd.PromiseInterface = tsd.when(10)
.then(() => tsd.when('foo'));
var t2: tsd. PromiseInterface = tsd.when(10)
.then(() => 'foo');
var t3: tsd.PromiseInterface = tsd.when(10)
.then(() => 'foo', () => tsd.when('bar'));
var t4: tsd.PromiseInterface = tsd.when(10)
.then(() => 'foo', () => 'bar');
var t5: tsd.PromiseInterface = tsd.when(10)
.then(() => tsd.when('foo'), () => 'bar');
var t6: tsd.PromiseInterface = tsd.when(10)
.then(() => tsd.when('foo'), () => tsd.when('bar'));
var t7: tsd.PromiseInterface = tsd.when(10)
.always(() => 'foo');
var t8: tsd.PromiseInterface = tsd.when(10)
.always(() => tsd.when('foo'));
var t9: tsd.PromiseInterface = tsd.when(10)
.otherwise(() => 11);
var t10: tsd.PromiseInterface = tsd.when(10)
.otherwise(() => tsd.when(11));
var t11: tsd.PromiseInterface = tsd.when('foo');
var t12: tsd.PromiseInterface = tsd.when(tsd.when('foo'));
var t13: tsd.PromiseInterface = tsd.create()
.promise;
var t14: tsd.DeferredInterface = tsd.create();
var t15: tsd.ThenableInterface = tsd.when('foo');
var t16: tsd.PromiseInterface = tsd.when( >tsd.when('foo'));
var t17: tsd.PromiseInterface = tsd.when(10)
.then(() => >tsd.when('foo'), () => >tsd.when('bar'));
var t18: tsd.PromiseInterface = tsd.create()
.resolve('foo')
.promise;
var t19: tsd.PromiseInterface = tsd.create()
.resolve(tsd.when('foo'))
.promise;
var t20: tsd.PromiseInterface = tsd.create()
.reject(new Error('foo'))
.promise;