export class Shape {
    constructor(device: any, options: any);
    _position: any;
    _rotation: any;
    _scale: any;
    _layers: any[];
    _shading: boolean;
    _disabled: any;
    _defaultColor: Color;
    _hoverColor: Color;
    _disabledColor: Readonly<Color>;
    _cull: number;
    /**
     * The graphics device.
     *
     * @type {GraphicsDevice}
     */
    device: GraphicsDevice;
    /**
     * The axis of the shape.
     *
     * @type {string}
     */
    axis: string;
    /**
     * The entity of the shape.
     *
     * @type {Entity}
     */
    entity: Entity;
    /**
     * The triangle data of the shape.
     *
     * @type {TriData[]}
     */
    triData: TriData[];
    /**
     * The mesh instances of the shape.
     *
     * @type {MeshInstance[]}
     */
    meshInstances: MeshInstance[];
    set disabled(value: any);
    get disabled(): any;
    set shading(value: boolean);
    get shading(): boolean;
    _createRoot(name: any): void;
    /**
     * Create a mesh from a primitive.
     *
     * @param {Geometry} geom - The geometry to create the mesh from.
     * @param {boolean} shading - Whether to apply shading to the primitive.
     * @returns {Mesh} The mesh created from the primitive.
     * @throws {Error} If the primitive type is invalid.
     * @protected
     */
    protected _createMesh(geom: Geometry, shading?: boolean): Mesh;
    /**
     * Create a render component for an entity.
     *
     * @param {Entity} entity - The entity to create the render component for.
     * @param {Mesh[]} meshes - The meshes to create the render component with.
     * @protected
     */
    protected _createRenderComponent(entity: Entity, meshes: Mesh[]): void;
    /**
     * Add a render mesh to an entity.
     *
     * @param {Entity} entity - The entity to add the render mesh to.
     * @param {string} type - The type of primitive to create.
     * @param {boolean} shading - Whether to apply shading to the primitive.
     * @throws {Error} If the primitive type is invalid.
     * @protected
     */
    protected _addRenderMesh(entity: Entity, type: string, shading: boolean): void;
    hover(state: any): void;
    destroy(): void;
}
import { Color } from '../../../core/math/color.js';
import type { GraphicsDevice } from '../../../platform/graphics/graphics-device.js';
import { Entity } from '../../../framework/entity.js';
import type { TriData } from '../tri-data.js';
import { MeshInstance } from '../../../scene/mesh-instance.js';
import { Geometry } from '../../../scene/geometry/geometry.js';
import { Mesh } from '../../../scene/mesh.js';
