/** @packageDocumentation
 * @module Rendering
 */
/** APIs for querying memory consumed by the [[RenderSystem]].
 * Use methods like [[Viewport.collectStatistics]] and [[TileTreeReference.collectStatistics]] to query this memory usage.
 * @public
 */
export declare namespace RenderMemory {
    /** Describes memory consumed by a particular type of resource.
     * @internal
     */
    class Consumers {
        totalBytes: number;
        maxBytes: number;
        count: number;
        addConsumer(numBytes: number): void;
        clear(): void;
    }
    /** @internal */
    enum BufferType {
        Surfaces = 0,
        VisibleEdges = 1,
        SilhouetteEdges = 2,
        PolylineEdges = 3,
        IndexedEdges = 4,
        Polylines = 5,
        PointStrings = 6,
        PointClouds = 7,
        Instances = 8,
        Terrain = 9,
        RealityMesh = 10,
        COUNT = 11
    }
    /** Describes memory consumed by GPU-allocated buffers.
     * @internal
     */
    class Buffers extends Consumers {
        readonly consumers: Consumers[];
        constructor();
        get surfaces(): Consumers;
        get visibleEdges(): Consumers;
        get indexedEdges(): Consumers;
        get silhouetteEdges(): Consumers;
        get polylineEdges(): Consumers;
        get polylines(): Consumers;
        get pointStrings(): Consumers;
        get pointClouds(): Consumers;
        get instances(): Consumers;
        get terrain(): Consumers;
        get reality(): Consumers;
        clear(): void;
        addBuffer(type: BufferType, numBytes: number): void;
    }
    /** @internal */
    enum ConsumerType {
        Textures = 0,
        VertexTables = 1,
        EdgeTables = 2,
        FeatureTables = 3,
        FeatureOverrides = 4,
        ClipVolumes = 5,
        PlanarClassifiers = 6,
        ShadowMaps = 7,
        TextureAttachments = 8,
        ThematicTextures = 9,
        COUNT = 10
    }
    /** Contains statistics about the amount and type of memory consumed by the [[RenderSystem]].
     * Use methods like [[Viewport.collectStatistics]] and [[TileTreeReference.collectStatistics]] to query this memory usage.
     * @see [[Statistics.create]] to instantiate an instance of this class.
     * @public
     */
    class Statistics {
        private _totalBytes;
        /** @internal */
        readonly consumers: Consumers[];
        /** @internal */
        readonly buffers: Buffers;
        /** Create a new, empty statistics object. */
        static create(): Statistics;
        /** @internal */
        constructor();
        /** The total reported memory consumption, in bytes.
         * @note A web browser provides no direct access to actual memory used by the host device or its graphics hardware. The reported memory usage
         * is an estimate based on the number of bytes of data requested via WebGL APIs. It is always an *under-estimate* as each WebGL implementation imposes
         * its own additional overhead.
         */
        get totalBytes(): number;
        /** @internal */
        get textures(): Consumers;
        /** @internal */
        get vertexTables(): Consumers;
        /** @internal */
        get edgeTables(): Consumers;
        /** @internal */
        get featureTables(): Consumers;
        /** @internal */
        get thematicTextures(): Consumers;
        /** @internal */
        get featureOverrides(): Consumers;
        /** @internal */
        get clipVolumes(): Consumers;
        /** @internal */
        get planarClassifiers(): Consumers;
        /** @internal */
        get shadowMaps(): Consumers;
        /** @internal */
        get textureAttachments(): Consumers;
        /** @internal */
        addBuffer(type: BufferType, numBytes: number): void;
        /** @internal */
        addConsumer(type: ConsumerType, numBytes: number): void;
        /** @internal */
        clear(): void;
        /** @internal */
        addTexture(numBytes: number): void;
        /** @internal */
        addVertexTable(numBytes: number): void;
        /** @internal */
        addEdgeTable(numBytes: number): void;
        /** @internal */
        addFeatureTable(numBytes: number): void;
        /** @internal */
        addThematicTexture(numBytes: number): void;
        /** @internal */
        addFeatureOverrides(numBytes: number): void;
        /** @internal */
        addClipVolume(numBytes: number): void;
        /** @internal */
        addPlanarClassifier(numBytes: number): void;
        /** @internal */
        addShadowMap(numBytes: number): void;
        /** @internal */
        addTextureAttachment(numBytes: number): void;
        /** @internal */
        addSurface(numBytes: number): void;
        /** @internal */
        addVisibleEdges(numBytes: number): void;
        /** @internal */
        addIndexedEdges(numBytes: number): void;
        /** @internal */
        addSilhouetteEdges(numBytes: number): void;
        /** @internal */
        addPolylineEdges(numBytes: number): void;
        /** @internal */
        addPolyline(numBytes: number): void;
        /** @internal */
        addPointString(numBytes: number): void;
        /** @internal */
        addPointCloud(numBytes: number): void;
        /** @internal */
        addTerrain(numBytes: number): void;
        /** @internal */
        addRealityMesh(numBytes: number): void;
        /** @internal */
        addInstances(numBytes: number): void;
    }
    /** @internal */
    interface Consumer {
        collectStatistics(stats: Statistics): void;
    }
}
//# sourceMappingURL=RenderMemory.d.ts.map