import { InstancedBufferAttribute } from 'three';
import type { Component } from '../../components/component.js';
import { RootContext } from '../../context.js';
import { OrderInfo } from '../../order.js';
import type { InstancedPanel } from './panel.js';
import type { PanelGroupProperties } from './properties.js';
export declare class InstancedPanelGroup {
    private readonly object;
    readonly root: Omit<RootContext, 'glyphGroupManager' | 'panelGroupManager'>;
    private readonly orderInfo;
    private readonly panelGroupProperties;
    private mesh?;
    instanceMatrix: InstancedBufferAttribute;
    instanceData: InstancedBufferAttribute;
    instanceClipping: InstancedBufferAttribute;
    private readonly instanceMaterial;
    private buckets;
    private elementCount;
    private bufferElementSize;
    instanceDataOnUpdate: InstancedBufferAttribute['addUpdateRange'];
    private nextUpdateTime;
    private nextUpdateTimeoutRef;
    private activateElement;
    private setElementIndex;
    private bufferCopyWithin;
    private clearBufferAt;
    constructor(object: Component, root: Omit<RootContext, 'glyphGroupManager' | 'panelGroupManager'>, orderInfo: OrderInfo, panelGroupProperties: Required<PanelGroupProperties>);
    private updateCount;
    private requestUpdate;
    private requestUpdateNextFrame;
    insert(bucketIndex: number, panel: InstancedPanel): void;
    delete(bucketIndex: number, elementIndex: number | undefined, panel: InstancedPanel): void;
    onFrame(): void;
    private update;
    private resize;
    destroy(): void;
}
