type UnionToIntersection = (U extends any ? (k: U) => void : never) extends (k: infer I) => void ? I : never; /** * Merges sets of props together: * - duplicate `className` props get concatenated * - duplicate `style` props get shallow merged (later props have precedence for conflicting rules) * - duplicate functions (to be used for event handlers) get called in order from left to right * - all other are overwritten (later props have precedence) * @param props Sets of props to merge together. Later props have precedence. */ declare function mergeProps[]>(...props: T): { [K in keyof UnionToIntersection]: K extends 'className' ? string : K extends 'style' ? UnionToIntersection[K] : Exclude[K], undefined>; }; export { mergeProps };