import type * as THREEType from 'three';
import type { BoxelDefinition } from '@playdrop/boxel-core';
export interface BuildSkinnedMeshOptions {
    THREE: typeof THREEType;
    entity: BoxelDefinition;
}
export interface BuildSkinnedMeshResult {
    mesh: THREEType.SkinnedMesh;
    bones: THREEType.Bone[];
    skeleton: THREEType.Skeleton;
    boneMap: Map<string, THREEType.Bone>;
    stats: {
        vertices: number;
        triangles: number;
        weldedVertices: number;
        weldedByNode: Record<string, number>;
        connectBreakdown: Record<string, {
            childVertices: number;
            parentVertices: number;
        }>;
        atlas?: {
            width: number;
            height: number;
        } | null;
    };
    warnings: string[];
    dispose: () => void;
}
export declare function buildEntitySkinnedMesh(options: BuildSkinnedMeshOptions): BuildSkinnedMeshResult;
