import type { BlendMode } from '@esotericsoftware/spine-core';
import type { Disposable, Engine, SharedShaderWithSource, Texture, math } from '@galacean/effects';
import { Geometry, Material, Mesh } from '@galacean/effects';
export interface SpineMeshRenderInfo {
    texture: Texture;
    priority: number;
    blendMode: BlendMode;
    name?: string;
    renderOptions: {
        maskMode?: number;
        mask?: number;
    };
    engine: Engine;
}
export declare class SpineMesh implements Disposable {
    private vertices;
    private indices;
    private verticesLength;
    private indicesLength;
    private engine;
    mesh: Mesh;
    geometry: Geometry;
    material: Material;
    lastTexture: Texture;
    blendMode: BlendMode;
    priority: number;
    constructor(renderInfo: SpineMeshRenderInfo);
    get blending(): BlendMode;
    get texture(): Texture;
    get indicesNum(): number;
    createGeometry(): Geometry;
    createMaterial(maskMode: number, maskOrder: number): Material;
    updateMesh(vertices: number[], indices: number[], verticesLength: number): void;
    endUpdate(worldMatrix: math.Matrix4): void;
    startUpdate(): void;
    dispose(): void;
}
export declare function createShader(engine: Engine): SharedShaderWithSource;
