/** @packageDocumentation
 * @module WebGL
 */
import { FeatureAppearanceProvider, PackedFeature, RenderFeatureTable } from "@itwin/core-common";
import { WebGLDisposable } from "./Disposable";
import { UniformHandle } from "./UniformHandle";
import { Hilites, Target } from "./Target";
import { BatchOptions } from "../../../common/render/BatchOptions";
export declare function isFeatureHilited(feature: PackedFeature, hilites: Hilites, isModelHilited: boolean): boolean;
/** @internal */
export type FeatureOverridesCleanup = () => void;
/** @internal */
export declare class FeatureOverrides implements WebGLDisposable {
    readonly target: Target;
    private readonly _options;
    private _lut?;
    private _mostRecentSymbologyOverrides?;
    private _lastFlashId;
    private _hiliteSyncObserver;
    private _pickExclusionsSyncObserver;
    private _anyOverridden;
    private _allHidden;
    private _anyTranslucent;
    private _anyViewIndependentTranslucent;
    private _anyOpaque;
    private _anyHilited;
    private _lutParams;
    private _uniformSymbologyFlags;
    private _cleanup?;
    get anyOverridden(): boolean;
    get allHidden(): boolean;
    get anyTranslucent(): boolean;
    get anyViewIndependentTranslucent(): boolean;
    get anyOpaque(): boolean;
    get anyHilited(): boolean;
    /** For tests. */
    get lutData(): Uint8Array | undefined;
    get byteLength(): number;
    get isUniform(): boolean;
    private updateUniformSymbologyFlags;
    getUniformOverrides(): Uint8Array;
    private _initialize;
    private _update;
    private setTransparency;
    private buildLookupTable;
    private updateFlashedAndHilited;
    private updateFlashed;
    private constructor();
    static createFromTarget(target: Target, options: BatchOptions, cleanup: FeatureOverridesCleanup | undefined): FeatureOverrides;
    get isDisposed(): boolean;
    [Symbol.dispose](): void;
    initFromMap(map: RenderFeatureTable, provider: FeatureAppearanceProvider): void;
    update(features: RenderFeatureTable, provider: FeatureAppearanceProvider): void;
    bindLUTParams(uniform: UniformHandle): void;
    bindLUT(uniform: UniformHandle): void;
    bindUniformSymbologyFlags(uniform: UniformHandle): void;
}
//# sourceMappingURL=FeatureOverrides.d.ts.map