import { type VRMHumanBoneName } from '@pixiv/three-vrm'; import { AnimationAction, AnimationMixer, Object3D, Quaternion } from 'three'; import type { BoneMap } from '../utils.js'; export { VRMHumanBoneName } from '@pixiv/three-vrm'; export * from './vrm.js'; export type CharacterModelOptions = { readonly type?: 'vrm' | 'gltf'; readonly boneMap?: Record; readonly url?: string; /** * allows to apply an rotation offset when placing objects as children of the character's bones * @default undefined */ readonly boneRotationOffset?: Quaternion; /** * @default true */ readonly castShadow?: boolean; /** * @default true */ readonly receiveShadow?: boolean; /** * @default false */ readonly useDraco?: boolean; }; export declare function flattenCharacterModelOptions(options: Exclude | undefined): Parameters; export type CharacterModel = { mixer: AnimationMixer; scene: Object3D; currentAnimations: Map; boneRotationOffset?: Quaternion; }; export declare function loadCharacterModel(url?: string, type?: Exclude['type'], boneRotationOffset?: Quaternion, castShadow?: boolean, receiveShadow?: boolean, boneMap?: BoneMap, useDraco?: boolean): Promise; export declare function getBone(model: CharacterModel, name: VRMHumanBoneName): Object3D | undefined;