/** @packageDocumentation
 * @module Rendering
 */
import { ColorDef } from "../ColorDef";
import { LinePixels } from "../LinePixels";
import { OctEncodedNormalPair } from "../OctEncodedNormal";
import { PolylineIndices } from "../RenderPolyline";
/** @internal */
export declare class MeshPolyline {
    readonly indices: PolylineIndices;
    constructor(indices?: PolylineIndices);
    addIndex(index: number): void;
    clear(): void;
}
/** @internal */
export type MeshPolylineList = MeshPolyline[];
/** @internal */
export declare class MeshEdge {
    indices: number[];
    constructor(index0?: number, index1?: number);
    compareTo(other: MeshEdge): number;
}
/** @internal */
export interface EdgeAppearanceOverrides {
    color?: ColorDef;
    linePixels?: LinePixels;
    width?: number;
}
/** @internal */
export interface MeshPolylineGroup {
    polylines: MeshPolyline[];
    appearance?: EdgeAppearanceOverrides;
}
/** @internal */
export declare class MeshEdges {
    visible: MeshEdge[];
    silhouette: MeshEdge[];
    appearance?: EdgeAppearanceOverrides;
    polylineGroups: MeshPolylineGroup[];
    silhouetteNormals: OctEncodedNormalPair[];
    constructor();
}
/** @internal */
export declare class EdgeArgs {
    edges?: MeshEdge[];
    init(meshEdges?: MeshEdges): boolean;
    clear(): void;
    get isValid(): boolean;
    get numEdges(): number;
}
/** @internal */
export declare class SilhouetteEdgeArgs extends EdgeArgs {
    normals?: OctEncodedNormalPair[];
    init(meshEdges?: MeshEdges): boolean;
    clear(): void;
}
/** @internal */
export declare class PolylineEdgeArgs {
    groups?: MeshPolylineGroup[];
    constructor(groups?: MeshPolylineGroup[]);
    init(groups?: MeshPolylineGroup[]): boolean;
    get numGroups(): number;
    get isValid(): boolean;
    clear(): void;
}
//# sourceMappingURL=RenderMesh.d.ts.map