// @strict: true type Func = () => T; type Mapped = { [K in keyof T]: Func }; declare function reproduce(options: number): void; declare function reproduce(options: Mapped): T reproduce({ name: () => { return 123 } }); reproduce({ name() { return 123 } }); reproduce({ name: function () { return 123 } });