import { Component, DefineComponent, IntrinsicElementAttributes } from 'vue'; import { MotionProps } from './types'; import { FeatureBundle } from '../../features/dom-animation'; import { MotionBundle } from '../../state/motion-state'; import { ComponentProps, MotionHTMLAttributes } from '../../types'; type MotionCompProps = { create: { (component: T, options?: MotionCreateOptions): DefineComponent, 'as' | 'asChild'> & ComponentProps>; (component: string, options?: MotionCreateOptions): DefineComponent, 'as' | 'asChild'>>; }; }; export interface MotionCreateOptions extends MotionBundle { forwardMotionProps?: boolean; } /** * Creates a motion component from a base component or HTML tag * Caches string-based components for reuse */ export declare function createMotionComponent(component: string | DefineComponent, options?: MotionCreateOptions): Component; type MotionNameSpace = { [K in keyof IntrinsicElementAttributes]: DefineComponent, 'as' | 'asChild' | 'motionConfig' | 'layoutGroup'> & MotionHTMLAttributes, 'create'>; } & MotionCompProps; export declare function createMotionComponentWithFeatures(featureBundle?: FeatureBundle): MotionNameSpace; export {};