/** * Merges two attribute objects, with special handling for style properties. * Style objects are deeply merged rather than overwritten. * * @template T - The type of the first attributes object. * @template U - The type of the second attributes object. * @param a - The first attributes object. * @param b - The second attributes object (takes precedence for non-style properties). * @returns A merged attributes object with combined styles. * @example * ```typescript * mergeAttributes( * { class: 'foo', style: { color: 'red' } }, * { class: 'bar', style: { fontSize: '14px' } } * ) * // Returns { class: 'bar', style: { color: 'red', fontSize: '14px' } } * ``` */ export declare const mergeAttributes: , U extends Record>(a: T, b: U) => T & U; /** * Converts an attributes object's style property from an object to a CSS string. * This prepares attributes for use in DOM elements. * * @template T - The type of the attributes object. * @param attrs - The attributes object with a potential style object. * @returns A new attributes object with the style converted to a string. * @example * ```typescript * finalizeAttributes({ class: 'foo', style: { color: 'red' } }) * // Returns { class: 'foo', style: 'color:red' } * ``` */ export declare const finalizeAttributes: >(attrs: T) => Record;