/** @packageDocumentation
 * @module WebGL
 */
import { RenderPass } from "./RenderFlags";
import { Target } from "./Target";
/** Specifies how a TechniqueFlags handles feature table/overrides.
 * @internal
 */
export declare const enum FeatureMode {
    None = 0,// no features
    Pick = 1,// feature table only
    Overrides = 2
}
/** @internal */
export declare const enum IsInstanced {
    No = 0,
    Yes = 1
}
/** @internal */
export declare const enum IsAnimated {
    No = 0,
    Yes = 1
}
/** @internal */
export declare const enum IsClassified {
    No = 0,
    Yes = 1
}
/** @internal */
export declare const enum IsEdgeTestNeeded {
    No = 0,
    Yes = 1
}
/** @internal */
export declare const enum IsShadowable {
    No = 0,
    Yes = 1
}
/** @internal */
export declare const enum IsThematic {
    No = 0,
    Yes = 1
}
/** @internal */
export declare const enum IsWiremesh {
    No = 0,
    Yes = 1
}
/** @internal */
export type PositionType = "quantized" | "unquantized";
/** @internal */
export declare const enum EnableAtmosphere {
    No = 0,
    Yes = 1
}
/** Flags used to control which shader program is used by a rendering Technique.
 * @internal
 */
export declare class TechniqueFlags {
    numClipPlanes: number;
    featureMode: FeatureMode;
    isTranslucent: boolean;
    isEdgeTestNeeded: IsEdgeTestNeeded;
    isAnimated: IsAnimated;
    isInstanced: IsInstanced;
    isClassified: IsClassified;
    isShadowable: IsShadowable;
    isThematic: IsThematic;
    isWiremesh: IsWiremesh;
    positionType: PositionType;
    enableAtmosphere: EnableAtmosphere;
    private _isHilite;
    constructor(translucent?: boolean);
    get hasClip(): boolean;
    get usesQuantizedPositions(): boolean;
    init(target: Target, pass: RenderPass, instanced: IsInstanced, animated?: IsAnimated, classified?: IsClassified, shadowable?: IsShadowable, thematic?: IsThematic, wiremesh?: IsWiremesh, posType?: PositionType, enableAtmosphere?: EnableAtmosphere): void;
    reset(mode: FeatureMode, instanced: IsInstanced | undefined, shadowable: IsShadowable, thematic: IsThematic, posType: PositionType): void;
    get hasFeatures(): boolean;
    setAnimated(animated: boolean): void;
    setInstanced(instanced: boolean): void;
    setClassified(classified: boolean): void;
    get isHilite(): boolean;
    initForHilite(numClipPlanes: number, instanced: IsInstanced, classified: IsClassified, posType: PositionType): void;
    equals(other: TechniqueFlags): boolean;
    buildDescription(): string;
    static fromDescription(description: string): TechniqueFlags;
    static readonly defaults: TechniqueFlags;
}
//# sourceMappingURL=TechniqueFlags.d.ts.map