import type { GeometryLikeObject, GeometryLikeReactiveObject, GlRenderer, Topology } from '../../../core';
import type { Material } from '../materials/Material';
import type { VertexAttribute } from './VertexAttribute';
import { Resource } from '../../../core';
import { IndexBuffer } from './IndexBuffer';
export interface GeometryProperties extends Partial<Omit<GeometryLikeObject, 'instanceId'>> {
}
export declare class Geometry extends Resource implements GeometryLikeReactiveObject {
    topology: Topology;
    attributes: Record<string, VertexAttribute>;
    indexBuffer: IndexBuffer;
    instanceCount: number;
    constructor(properties?: GeometryProperties);
    draw(renderer: GlRenderer, material: Material, uniforms?: Record<string, any>): void;
}
