// @module: commonjs // @filename: map.ts import { Observable } from "./observable" (Observable.prototype).map = function() { } declare module "./observable" { interface Observable { map(proj: (e:T) => U): Observable } namespace Observable { let someAnotherValue: string; } } // @filename: observable.ts export declare class Observable { filter(pred: (e:T) => boolean): Observable; } export namespace Observable { export let someValue: number; } // @filename: main.ts import { Observable } from "./observable" import "./map"; let x: Observable; let y = x.map(x => x + 1); let z1 = Observable.someValue.toFixed(); let z2 = Observable.someAnotherValue.toLowerCase();