import { type ValueAnimationTransition } from 'motion/react';
import { type ComponentProps, type JSX } from 'react';
import type { PixiElements } from 'typedefs/PixiElements.js';
declare const supportedProps: readonly ["alpha", "angle", "rotation", "x", "y", "width", "height", "scale", "pivot", "position", "skew"];
type SupportedProps = (typeof supportedProps)[number];
/**
 * elements that accept all the above properties
 */
export type SupportedElements = keyof {
    [K in keyof PixiElements as Required<PixiElements[K]> extends Record<SupportedProps, unknown> ? PixiElements[K] extends never ? never : K : never]: never;
};
type SupportedValues = {
    [K in SupportedProps]: ComponentProps<SupportedElements>[K];
};
type PropertyTransitions = {
    [K in SupportedProps]?: ValueAnimationTransition;
} & ValueAnimationTransition;
type WithMotionProps<Props> = Props & {
    initial?: Partial<SupportedValues>;
    animate?: Partial<SupportedValues> & {
        transition?: PropertyTransitions;
    };
    transition?: PropertyTransitions;
};
export type PixiMotionComponent<TagName extends SupportedElements> = (props: WithMotionProps<ComponentProps<TagName>>) => JSX.Element;
export declare function createMotionComponent<TagName extends SupportedElements>(Component: TagName): PixiMotionComponent<TagName>;
export {};
