type UnboxLazy = T extends () => infer U ? U : T; type BoxedTupleTypes = { [P in keyof T]: [UnboxLazy]; }[Exclude]; type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; type UnboxIntersection = T extends { 0: infer U; } ? U : never; type MergeProxy = UnboxIntersection>>; export declare function mergeProxy(...sources: T): MergeProxy; export {};