/**
 * @module vim-loader
 */
import { Submesh } from '../mesh';
import { InsertableMesh } from './insertableMesh';
export declare class InsertableSubmesh {
    mesh: InsertableMesh;
    index: number;
    private _colors;
    constructor(mesh: InsertableMesh, index: number);
    equals(other: Submesh): boolean;
    /**
     * Returns parent three mesh.
     */
    get three(): import("three").Mesh<import("three").BufferGeometry<import("three").NormalBufferAttributes>, import("three").Material | import("three").Material[], import("three").Object3DEventMap>;
    /**
     * True if parent mesh is merged.
     */
    get merged(): boolean;
    private get submesh();
    /**
     * Returns vim instance associated with this submesh.
     */
    get instance(): number;
    /**
     * Returns bounding box for this submesh.
     */
    get boundingBox(): import("three").Box3;
    /**
     * Returns starting position in parent mesh for merged mesh.
     */
    get meshStart(): number;
    /**
     * Returns ending position in parent mesh for merged mesh.
     */
    get meshEnd(): number;
    /**
     * Returns vim object for this submesh.
     */
    get object(): import("../object3D").Object3D;
    saveColors(colors: Float32Array): void;
    popColors(): Float32Array<ArrayBufferLike>;
}
