import type { Slot } from '@esotericsoftware/spine-core';
import type { Engine, Mesh, Transform } from '@galacean/effects';
import { SpineMesh } from './spine-mesh';
export interface SlotGroupProps {
    meshName: string;
    /**
     * 包含父节点的世界变换
     */
    transform: Transform;
    /**
     * 用于给 mesh 排序
     */
    listIndex: number;
    /**
     * png 是否已经预乘 alpha
     */
    pma: boolean;
    /**
     * mask 和 renderer 相关参数
     */
    renderOptions: {};
    engine: Engine;
}
export declare class SlotGroup {
    /**
     * 根据绘制顺序排列的插槽数组
     */
    private readonly slotList;
    /**
     * 顶点数据
     */
    private vertices;
    private clipper;
    private tempColor;
    private tempDark;
    /**
     * 最新创建的 mesh
     */
    private currentMesh?;
    /**
     * 世界变换矩阵
     */
    private wm;
    meshName: string;
    listIndex: number;
    /**
     * png 是否已经预乘 alpha
     */
    pma: boolean;
    /**
     * mask 相关参数
     */
    renderOptions: {};
    /**
     * 包含父节点的世界变换
     */
    transform: Transform;
    /**
     * 当前绘制对应使用的 mesh 数组
     */
    meshGroups: SpineMesh[];
    /**
     * 需要添加到 renderPass 的 mesh，在初始/插槽顺序变化时有增加
     */
    meshToAdd: Mesh[];
    /**
     * 引擎对象
     */
    engine: Engine;
    /**
     * 默认顶点绘制顺序
     */
    static QUAD_TRIANGLES: number[];
    /**
     * 每个顶点的数据：x,y,r,g,b,a,u,v,r,g,b,a
     */
    static VERTEX_SIZE: number;
    /**
     * 每个 SpineMesh 最多容纳的三角形数量
     */
    static MAX_VERTICES: number;
    /**
     *
     * @param drawOrder
     * @param props
     */
    constructor(drawOrder: Slot[], props: SlotGroupProps);
    resetMeshes(): void;
    /**
     * 按照 drawOrder 遍历 slot，根据 region、mesh、clip 附件更新 mesh 的 geometry 和 material 信息
     */
    update(): void;
    /**
     * * 从 startIndex 开始，找到材质和顶点数符合限制的 SpineMesh
     */
    private findMeshIndex;
}
