import type { Geometry, Material, MeshDestroyOptions, GeometryMeshProps, Sortable, Engine, Renderer } from '@galacean/effects-core';
import { Mesh } from '@galacean/effects-core';
import * as THREE from 'three';
/**
 * mesh 抽象类的 THREE 实现
 */
export declare class ThreeMesh extends Mesh implements Sortable {
    /**
     * mesh 对象
     */
    mesh: THREE.Mesh | THREE.LineSegments;
    /**
     * 构造函数
     * @param props - mesh 创建参数
     */
    constructor(engine: Engine, props?: GeometryMeshProps);
    /**
     * 设置 mesh 的渲染顺序
     *
     * @param v - 顺序 index
     */
    set priority(v: number);
    /**
     * 获取 mesh 的渲染顺序
     */
    get priority(): number;
    /**
     * 设置 mesh 可见性
     *
     * @param val - 可见性开关
     */
    setVisible(val: boolean): void;
    /**
     * 获取 mesh 的可见性
     *
     * @returns
     */
    getVisible(): boolean;
    /**
     * 获取 mesh 中的首个 geometry
     *
     * @returns 返回 geometry 对象
     */
    firstGeometry(): Geometry;
    /**
     * 设置 material
     *
     * @param mtl - material 对象
     * @param destroy 销毁参数
     */
    setMaterial(mtl: Material): void;
    onStart(): void;
    /**
     * 重建方法
     */
    restore(): void;
    render(renderer: Renderer): void;
    /**
     * 销毁方法
     *
     * @param options - 销毁参数
     */
    dispose(options?: MeshDestroyOptions): void;
}
