import type * as React from 'react'; import type { ZestUIEvent, WithZestUIEvent } from '../types'; type ElementType = React.ElementType; type PropsOf = WithZestUIEvent>; type InputProps = PropsOf | ((otherProps: PropsOf) => PropsOf) | undefined; /** * Merges multiple sets of React props. It follows the Object.assign pattern where the rightmost object's fields overwrite * the conflicting ones from others. This doesn't apply to event handlers, `className` and `style` props. * * Event handlers are merged and called in right-to-left order (rightmost handler executes first, leftmost last). * For React synthetic events, the rightmost handler can prevent prior (left-positioned) handlers from executing * by calling `event.preventZestUIHandler()`. * * The `className` prop is merged by concatenating classes in right-to-left order (rightmost class appears first in the string). * The `style` prop is merged by composing a React Native style array `[left, right]`, so the rightmost styles win * when React Native flattens the array. * * Props can either be provided as objects or as functions that take the previous props as an argument. * * @important **`ref` is not merged.** * @public */ export declare function mergeProps(a: InputProps, b: InputProps, c: InputProps, d: InputProps, e: InputProps): PropsOf; export declare function mergeProps(a: InputProps, b: InputProps, c: InputProps, d: InputProps): PropsOf; export declare function mergeProps(a: InputProps, b: InputProps, c: InputProps): PropsOf; export declare function mergeProps(a: InputProps, b: InputProps): PropsOf; /** * Merges an arbitrary number of React props using the same logic as {@link mergeProps}. * This function accepts an array of props instead of individual arguments. * * @param props Array of props to merge. * @returns The merged props. * @see mergeProps * @public */ export declare function mergePropsN(props: InputProps[]): PropsOf; export declare function makeEventPreventable(event: ZestUIEvent): ZestUIEvent; /** * Composes two React Native styles into an array so the rightmost style wins * when flattened. Never object-spreads: styles may be registered StyleSheet * IDs or nested arrays. */ export declare function mergeStyles(ourStyle: unknown, theirStyle: unknown): unknown; export declare function mergeClassNames(ourClassName: string | undefined, theirClassName: string | undefined): string | undefined; export {}; //# sourceMappingURL=mergeProps.d.ts.map