/** @packageDocumentation
 * @module WebGL
 */
import { RenderMemory } from "../../../render/RenderMemory";
import { PolylineBuffers } from "./CachedGeometry";
import { ColorInfo } from "./ColorInfo";
import { ShaderProgramParams } from "./DrawCommand";
import { BufferHandle, BuffersContainer } from "./AttributeBuffers";
import { RenderOrder } from "./RenderFlags";
import { Target } from "./Target";
import { TechniqueId } from "./TechniqueId";
import { MeshData } from "./MeshData";
import { MeshGeometry } from "./MeshGeometry";
import { PolylineEdgeGroup, SegmentEdgeParams, SilhouetteParams } from "../../../common/internal/render/EdgeParams";
/** @internal */
export declare class EdgeGeometry extends MeshGeometry {
    readonly buffers: BuffersContainer;
    protected readonly _indices: BufferHandle;
    protected readonly _endPointAndQuadIndices: BufferHandle;
    get lutBuffers(): BuffersContainer;
    get asSurface(): undefined;
    get asEdge(): this;
    get asSilhouette(): SilhouetteEdgeGeometry | undefined;
    static create(mesh: MeshData, edges: SegmentEdgeParams): EdgeGeometry | undefined;
    get isDisposed(): boolean;
    [Symbol.dispose](): void;
    collectStatistics(stats: RenderMemory.Statistics): void;
    protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void;
    protected _wantWoWReversal(_target: Target): boolean;
    protected _getLineCode(params: ShaderProgramParams): number;
    get techniqueId(): TechniqueId;
    getPass(target: Target): import("./RenderFlags").Pass;
    get renderOrder(): RenderOrder;
    getColor(target: Target): ColorInfo;
    get endPointAndQuadIndices(): BufferHandle;
    wantMonochrome(target: Target): boolean;
    protected constructor(indices: BufferHandle, endPointAndQuadsIndices: BufferHandle, numIndices: number, mesh: MeshData);
}
/** @internal */
export declare class SilhouetteEdgeGeometry extends EdgeGeometry {
    private readonly _normalPairs;
    get asSilhouette(): this;
    static createSilhouettes(mesh: MeshData, params: SilhouetteParams): SilhouetteEdgeGeometry | undefined;
    get isDisposed(): boolean;
    [Symbol.dispose](): void;
    collectStatistics(stats: RenderMemory.Statistics): void;
    get techniqueId(): TechniqueId;
    get renderOrder(): RenderOrder;
    get normalPairs(): BufferHandle;
    private constructor();
}
/** @internal */
export declare class PolylineEdgeGeometry extends MeshGeometry {
    private _buffers;
    private readonly _colorInfo;
    private readonly _width;
    private readonly _lineCode;
    get lutBuffers(): BuffersContainer;
    static create(mesh: MeshData, group: PolylineEdgeGroup): PolylineEdgeGeometry | undefined;
    get isDisposed(): boolean;
    [Symbol.dispose](): void;
    collectStatistics(stats: RenderMemory.Statistics): void;
    protected _wantWoWReversal(_target: Target): boolean;
    get techniqueId(): TechniqueId;
    getPass(target: Target): import("./RenderFlags").Pass;
    get renderOrder(): RenderOrder;
    get polylineBuffers(): PolylineBuffers;
    protected _getLineCode(params: ShaderProgramParams): number;
    protected _getLineWeight(params: ShaderProgramParams): number;
    getColor(target: Target): ColorInfo;
    wantMonochrome(target: Target): boolean;
    protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void;
    private constructor();
}
//# sourceMappingURL=EdgeGeometry.d.ts.map