// Type definitions for extend 3.0 // Project: https://github.com/justmoon/node-extend // Definitions by: Stefan Steinhart // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped declare function extend(deep: boolean, target: T, source: U): T & U; declare function extend(deep: boolean, target: T, source1: U, source2: V): T & U & V; declare function extend(deep: boolean, target: T, source1: U, source2: V, source3: W): T & U & V & W; declare function extend(deep: boolean, target: T, source1: U, source2: V, source3: W, source4: X): T & U & V & W & X; declare function extend(target: T, source: U): T & U; declare function extend(target: T, source1: U, source2: V): T & U & V; declare function extend(target: T, source1: U, source2: V, source3: W): T & U & V & W; declare function extend(target: T, source1: U, source2: V, source3: W, source4: X): T & U & V & W & X; declare function extend(deep: boolean, target: any, ...sources: any[]): any; declare function extend(target: any, ...sources: any[]): any; declare namespace extend {} export = extend;