interface ObjectConstructor { merge(target: any, ...sources: any[]): T; values(obj: T): T[keyof T][]; entries(o: { [s: string]: T }): [string, T][]; forEach(obj: T, handler: (v: T[keyof T], k: keyof T & string, obj: T) => void): void; }