import React, { RefObject } from 'react'; import { AnimationConfigMap, AnimationType } from '../../types/animation'; import * as THREE from 'three'; /** * CharacterRenderer component Props */ export interface VRMModelRendererProps { /** Determines whether the model is displayed on the screen. * @defaultValue `true` */ visible?: boolean; /** Model path (file path or URL) */ url: string; /** Animation configuration map */ animationConfigMap: AnimationConfigMap; /** Reference to the current character action */ currentAnimationRef: RefObject; /** Target height for the character model */ targetHeight?: number; /** Optional callback for when an animation completes */ onAnimationComplete?: (type: AnimationType) => void; /** Optional callback for when model size information is available */ onSizeInfoAvailable?: (boundingBox: THREE.Box3) => void; /** Optional child components */ children?: React.ReactNode; } /** * Character renderer component for 3D model animation support * Handles both GLTF and VRM model loading, rendering, and animation */ export declare const VRMModelRenderer: ({ visible, url, animationConfigMap, currentAnimationRef, targetHeight, onAnimationComplete, onSizeInfoAvailable, children, }: VRMModelRendererProps) => import("react/jsx-runtime").JSX.Element | null;