import { VOBufferPool } from './VOBufferPool.js';
import { VertexObjectDescriptor } from './VertexObjectDescriptor.js';
import type { VO, VertexObjectBuffersData, VertexObjectDescription } from './types.js';
export declare class VertexObjectPool<VOType> extends VOBufferPool {
    #private;
    onCreateVO?: (vo: VOType & VO) => (VOType & VO) | void;
    onDestroyVO?: (vo: VOType & VO) => void;
    constructor(descriptor: VertexObjectDescriptor | VertexObjectDescription, capacityOrData: number | VertexObjectBuffersData);
    createVO(): VOType & VO;
    containsVO(vo: VO): boolean;
    freeVO(vo: VO): void;
    getVO(idx: number): (VOType & VO) | undefined;
}
//# sourceMappingURL=VertexObjectPool.d.ts.map