import type { Block } from '@enginehub/schematicjs';
import type { InstancedMesh, Scene } from '@babylonjs/core';
import type { ResourceLoader } from '../../resource/resourceLoader';
import type { BlockModelData, BlockModelOption, BlockStateDefinition } from './types';
interface ModelLoader {
    clearCache: () => void;
    getBlockModelData: (block: Block, blockState: BlockStateDefinition) => BlockModelData;
    getModelOption: (data: BlockModelData) => BlockModelOption;
    getModel: (data: BlockModelOption, block: Block, scene: Scene) => Promise<InstancedMesh[]>;
}
export declare function getModelLoader(resourceLoader: ResourceLoader): ModelLoader;
export {};
