declare module EndGate { export interface ICloneable { Clone(): any; } } interface Number extends EndGate.ICloneable { } module EndGate.Tweening { export class Tween{ private _from: T; constructor(from: T) { this._from = from.Clone(); } } } module EndGate.Tweening { export class NumberTween extends Tween{ constructor(from: number) { super(from); } } }