/** @packageDocumentation
 * @module WebGL
 */
import { RenderMemory } from "../RenderMemory";
import { CachedGeometry } from "./CachedGeometry";
import { Graphic } from "./Graphic";
import { InstanceBuffers, PatternBuffers } from "./InstancedGeometry";
import { RenderCommands } from "./RenderCommands";
import { Pass, RenderOrder, RenderPass } from "./RenderFlags";
import { ShaderProgramExecutor } from "./ShaderProgram";
import { Target } from "./Target";
import { TechniqueId } from "./TechniqueId";
import { Range3d } from "@itwin/core-geometry";
/** @internal */
export declare class Primitive extends Graphic {
    cachedGeometry: CachedGeometry;
    isPixelMode: boolean;
    protected constructor(cachedGeom: CachedGeometry);
    static create(geom: CachedGeometry | undefined, instances?: InstanceBuffers | PatternBuffers): Primitive | undefined;
    static createShared(geom: CachedGeometry | undefined, instances?: InstanceBuffers | PatternBuffers): Primitive | undefined;
    get isDisposed(): boolean;
    get isPickable(): boolean;
    dispose(): void;
    collectStatistics(stats: RenderMemory.Statistics): void;
    unionRange(range: Range3d): void;
    getPass(target: Target): Pass;
    get hasFeatures(): boolean;
    addCommands(commands: RenderCommands): void;
    addHiliteCommands(commands: RenderCommands, pass: RenderPass): void;
    get hasAnimation(): boolean;
    get isInstanced(): boolean;
    get isLit(): boolean;
    get isEdge(): boolean;
    get renderOrder(): RenderOrder;
    get hasMaterialAtlas(): boolean;
    toPrimitive(): Primitive;
    private static _drawParams?;
    static freeParams(): void;
    draw(shader: ShaderProgramExecutor): void;
    get techniqueId(): TechniqueId;
}
/** @internal */
export declare class SkyCubePrimitive extends Primitive {
    constructor(cachedGeom: CachedGeometry);
    draw(shader: ShaderProgramExecutor): void;
}
/** @internal */
export declare class SkySpherePrimitive extends Primitive {
    constructor(cachedGeom: CachedGeometry);
    draw(shader: ShaderProgramExecutor): void;
}
//# sourceMappingURL=Primitive.d.ts.map