import type { SpriteVFXItem } from './SpriteVFXItem'; import type { CalculateGroup } from '../cal/CalculateGroup'; import type { SpriteItem, SpriteItemRenderInfo } from './SpriteItem'; import type { VFXItem } from '../../player/VFXItem'; import { SpriteMesh } from './SpriteMesh'; import type { Mesh, Texture } from '@predy-js/render-interface'; import type { Composition } from '../../player/Composition'; interface MeshSplit { indexStart: number; renderInfo: SpriteItemRenderInfo; cacheId: string; items: SpriteVFXItem[]; dirty?: boolean; indexEnd?: number; spriteMesh?: SpriteMesh; textures: Texture[]; } export interface LayerInfo { layerToAdd?: SpriteMesh[]; } export declare class SpriteGroup { calculateGroup: CalculateGroup; meshSplits: MeshSplit[]; composition: Composition; readonly _items: VFXItem[]; readonly meshes: Mesh[]; private readonly _itemsToRemove; private readonly _itemsToAdd; time: number; constructor(composition: Composition); resetMeshSplits(): void; _check(): void; diffMeshSplits(): { remove?: Mesh[]; add?: Mesh[]; modify?: Mesh[]; layer?: LayerInfo; } | void; addMeshSplitsItem(items: VFXItem[], item: VFXItem, splits: MeshSplit[]): MeshSplit[]; removeMeshSplitsItem(items: VFXItem[], item: SpriteVFXItem, splits: MeshSplit[], itemsToRemove?: VFXItem[]): MeshSplit[]; combineSplits(items: VFXItem[], itemIndex: number, splits: MeshSplit[]): MeshSplit[]; getMeshSplits(items: VFXItem[], startIndex?: number, endIndex?: number, init?: boolean): MeshSplit[]; addItem(vfxItem: VFXItem): void; removeItem(item: VFXItem): void; getSpriteMesh(item: SpriteItem): SpriteMesh; updateTime(dt: number): void; updateRenderData(): void; destroy(composition: Composition): void; } export {};