declare type Merger = (obj: any, key: string, value: any) => any; declare type DefuFn = (...args: T | any) => T; interface Defu { (...args: T | any): T; fn: DefuFn; extend(merger?: Merger): DefuFn; } declare const defu: Defu; export default defu;