import { InstancedBufferAttribute, Object3D } from 'three';
import { InstancedGlyph } from './instanced-glyph.js';
import { Font } from '../font.js';
import { OrderInfo, WithReversePainterSortStableCache } from '../../order.js';
import { RootContext } from '../../context.js';
export declare class GlyphGroupManager {
    private readonly root;
    private readonly objectRef;
    private map;
    constructor(root: WithReversePainterSortStableCache & Pick<RootContext, 'requestFrame' | 'requestRender' | 'onFrameSet' | 'pixelSize'>, objectRef: {
        current?: Object3D | null;
    });
    init(abortSignal: AbortSignal): void;
    private traverse;
    getGroup(majorIndex: number, depthTest: boolean, depthWrite: boolean, renderOrder: number, font: Font): InstancedGlyphGroup;
}
export declare class InstancedGlyphGroup {
    private objectRef;
    readonly root: WithReversePainterSortStableCache & Pick<RootContext, 'requestFrame' | 'requestRender' | 'pixelSize'>;
    private orderInfo;
    private renderOrder;
    instanceMatrix: InstancedBufferAttribute;
    instanceUV: InstancedBufferAttribute;
    instanceRGBA: InstancedBufferAttribute;
    instanceClipping: InstancedBufferAttribute;
    private glyphs;
    private requestedGlyphs;
    private holeIndicies;
    private mesh?;
    private instanceMaterial;
    private timeTillDecimate?;
    constructor(objectRef: {
        current?: Object3D | null;
    }, font: Font, root: WithReversePainterSortStableCache & Pick<RootContext, 'requestFrame' | 'requestRender' | 'pixelSize'>, orderInfo: OrderInfo, depthTest: boolean, depthWrite: boolean, renderOrder: number);
    requestActivate(glyph: InstancedGlyph): void;
    delete(glyph: InstancedGlyph): void;
    onFrame(delta: number): void;
    private resize;
    destroy(): void;
}
