/**
 * @module vim-loader
 */
import { G3d } from 'vim-format';
import { MergeArgs } from '../geometry';
import { InstancingArgs, MeshBuilder } from './meshBuilder';
import { Scene } from '../scene';
import { VimSettings } from '../vimSettings';
/**
 * Creates meshes and returns them as a scene from a g3d.
 */
export declare class SceneBuilder {
    readonly meshBuilder: MeshBuilder;
    constructor(meshBuilder?: MeshBuilder);
    /**
     * Creates a new Scene from a g3d by merging mergeble meshes and instancing instantiable meshes
     * @param transparency Specify whether color is RBG or RGBA and whether material is opaque or transparent
     * @param instances g3d instance indices to be included in the Scene. All if undefined.
     */
    createFromG3d(g3d: G3d, settings: VimSettings): Scene;
    /**
     * Creates a Scene from instantiable meshes from the g3d
     * @param transparency Specify whether color is RBG or RGBA and whether material is opaque or transparent
     * @param instances g3d instance indices to be included in the Scene. All if undefined.
     * @param builder optional builder to reuse the same materials
     */
    createFromInstanciableMeshes(g3d: G3d, args: InstancingArgs): Scene;
    /**
     * Creates a Scene from mergeable meshes from the g3d
     * @param transparency Specify whether color is RBG or RGBA and whether material is opaque or transparent
     * @param instances g3d instance indices to be included in the Scene. All if undefined.
     * @param builder optional builder to reuse the same materials
     */
    createFromMergeableMeshes(g3d: G3d, args: MergeArgs): Scene;
}
