import { HTMLAttributes, Ref, VNodeProps } from 'vue';
import { Data, MergeAll } from '../types/index.js';
/**
* Extension of `useAttrs` which splits root attributes from other properties.
* As root properties are considered: `style` and `class`.
*
* Make sure to call `defineOptions({ inheritAttrs: false });`.
*
* @example
* ```vue
*
*
*
*
*
*
*
*
*/
export declare const useRootAttrs: >() => {
/**
* Contains the `class` and `style` fall-through attributes, if set.
*/
rootAttrs: import('vue').ComputedRef>;
/**
* Contains all fall-through attributes except `class` and `style`.
*/
restAttrs: import('vue').ComputedRef>;
};
type VProps = Data & VNodeProps;
type MergeVuePropsResult = MergeAll extends {
ref: NonNullable;
} ? MergeAll<[...T, {
ref: Ref;
}]> : MergeAll;
/**
* Extends the Vue's `mergeProp` function, so that it
* - doesn't complain about nullish parameters
* - is also able to merge `ref` properties
*/
export declare const mergeVueProps: (...args: T | []) => MergeVuePropsResult;
export {};