import type { mat4, Renderer } from '@predy-js/render-interface'; import { Mesh, Texture } from '@predy-js/render-interface'; import type { TextVFXItem } from './TextVFXItem'; import type { SDFImage, TextItem } from '@predy-js/specification'; import type { Composition } from '../../player/Composition'; import type { VFXItem } from '../../player/VFXItem'; declare class TextGeo { mesh: Mesh; cid: string | undefined; items: TextVFXItem[]; sdfImage: SDFImage | undefined; lineFontSize: number[]; } export declare class TextSystem { maxPackItem: number; items: TextVFXItem[]; meshesToAdd: Mesh[]; meshesToRemove: Mesh[]; meshMap: Record; textMap: Record; itemGroup: TextVFXItem[][]; renderer: Renderer; composition: Composition; env: string; indexBuffer: Uint16Array; renderingMeshes: string[]; cacheMat4: mat4; constructor(comp: Composition); destroy(): void; onItemBegin(item: VFXItem): void; addInvisibleItem(item: VFXItem): void; removeInvisibleItem(item: VFXItem): void; modifyGroupWithInvisibleItem(index: number, remove: boolean): void; onTextItemBegin(item: TextVFXItem): void; addItem(item: TextVFXItem): void; removeItem(item: TextVFXItem): void; updateGroupGeometry(group: TextVFXItem[], textGeo: TextGeo, texture?: Texture): void; /** * update meshes data */ updateMeshes(): void; attributeDataBySDFImage(sdfImage: SDFImage, lineIndex: number, opt: TextItem['text'], lineFontSize: number[], textIndex: number): Float32Array; createGroupTextMesh(item: TextVFXItem, addToMeshes?: boolean): void; createTextMesh(cid?: string, attributeData?: Float32Array): Mesh; } export {};