import { spec, Downloader } from '@galacean/effects';
import type { Engine, Renderer, GeometryProps } from '@galacean/effects';
export declare class JSONConverter {
    renderer: Renderer;
    keepIBLData: boolean;
    newScene: spec.JSONScene;
    engine: Engine;
    downloader: Downloader;
    treeInfo: TreeInfo;
    constructor(renderer: Renderer, keepIBLData?: boolean);
    processScene(sceneData: string | Record<string | symbol, unknown>): Promise<spec.JSONScene>;
    setImage(newScene: spec.JSONScene, oldScene: spec.JSONScene): void;
    setTexture(newScene: spec.JSONScene, oldScene: spec.JSONScene): Promise<void>;
    setComponent(newScene: spec.JSONScene, oldScene: spec.JSONScene): void;
    setItem(newScene: spec.JSONScene, oldScene: spec.JSONScene): void;
    setComposition(newScene: spec.JSONScene, oldScene: spec.JSONScene): void;
    private loadJSON;
    private loadBins;
    private loadMipmapImage;
    private createSkyboxComponent;
    private createMeshComponent;
    private createItemsFromTreeComponent;
    private createLightComponent;
    private createAnimationComponent;
    private getMaterialData;
    private setupMaterial;
    private getTextureData;
    private getTransformData;
    private setupBoneData;
}
declare class TreeInfo {
    tree2NodeList: Record<string, spec.VFXItemData[]>;
    nodeList2Tree: Record<string, spec.VFXItemData>;
    nodeId2Node: Record<string, spec.VFXItemData>;
    node2Path: Record<string, string>;
    add(treeItem: spec.VFXItemData, treeNodeList: spec.VFXItemData[]): void;
    setNodePath(node: spec.VFXItemData): void;
    getTreeNodeListByTreeId(id: string): spec.VFXItemData[];
    getTreeNodeListByNodeId(id: string): spec.VFXItemData[];
    getTreeItemByNodeId(id: string): spec.VFXItemData;
    getTreeNode(treeId: string, nodeIndex: number): spec.VFXItemData;
    getAllTreeNodeList(): spec.VFXItemData[];
    getNodePath(id: string): string;
}
export interface ModelData {
    vertices: spec.TypedArray;
    uvs: spec.TypedArray;
    normals: spec.TypedArray;
    indices: spec.TypedArray;
    name: string;
}
export declare function getGeometryDataFromOptions(geomOptions: GeometryProps): spec.GeometryData;
export declare function getGeometryDataFromPropsList(geomPropsList: GeometryProps[]): spec.GeometryData | undefined;
export {};
