import React, { RefObject } from 'react'; import { AnimationConfigMap, AnimationType } from '../../types/animation'; import * as THREE from 'three'; /** * CharacterRenderer component Props * Simplified interface that accepts CharacterResource */ export interface GltfModelRendererProps { /** 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; /** If true, animation won't be adjusted to fit the model's body proportion */ disableAnimationAdjustmentToModelProportion?: boolean; /** 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 model loading, rendering, animation mapping and state management */ export declare const GltfModelRenderer: ({ visible, url, animationConfigMap, currentAnimationRef, targetHeight, disableAnimationAdjustmentToModelProportion, onAnimationComplete, onSizeInfoAvailable, children, }: GltfModelRendererProps) => import("react/jsx-runtime").JSX.Element | null;