/** @packageDocumentation
 * @module Views
 */
/** Bit masks describing which aspects of a [[Viewport]] have changed as part of a [[ChangeFlags]].
 * @see [[Viewport.onViewportChanged]].
 * @public
 */
export declare enum ChangeFlag {
    /** No changes. */
    None = 0,
    /** See [[ChangeFlags.alwaysDrawn]]. */
    AlwaysDrawn = 1,
    /** See [[ChangeFlags.neverDrawn]]. */
    NeverDrawn = 2,
    /** See [[ChangeFlags.viewedCategories]]. */
    ViewedCategories = 4,
    /** See [[ChangeFlags.viewedModels]]. */
    ViewedModels = 8,
    /** See [[ChangeFlags.displayStyle]]. */
    DisplayStyle = 16,
    /** See [[ChangeFlags.featureOverrideProvider]]. */
    FeatureOverrideProvider = 32,
    /** See [[ChangeFlags.viewedCategoriesPerModel]]. */
    ViewedCategoriesPerModel = 64,
    /** See [[ChangeFlags.viewState]]. */
    ViewState = 128,// eslint-disable-line no-shadow
    /** A bitmask indicating all aspects of the viewport's state have changed. */
    All = 268435455,
    /** A bitmask indicating all aspects of the viewport's state related to symbology overrides have changed. */
    Overrides = 268435319,
    /** A bitmask indicating the initial state of a newly-created [[Viewport]]. */
    Initial = 28
}
/** Describes which aspects of a [[Viewport]] have changed. Each time [[Viewport.renderFrame]] is invoked, the aspects of the viewport that have changed since
 * the previous call to `renderFrame` are computed and dispatched via the [[Viewport.onViewportChanged]] event.
 * @public
 * @extensions
 */
export declare class ChangeFlags {
    /** The bitmask that records the state of each individual flag. */
    protected _flags: ChangeFlag;
    /** Create a new ChangeFlags.
     * @param flags The initial flags that should be set.
     */
    constructor(flags?: ChangeFlag);
    /** The set of always-drawn elements has changed.
     * @see [[Viewport.setAlwaysDrawn]] and [[Viewport.clearAlwaysDrawn]].
     */
    get alwaysDrawn(): boolean;
    /** The set of never-drawn elements has changed.
     * @see [[Viewport.setNeverDrawn]] and [[Viewport.clearNeverDrawn]].
     */
    get neverDrawn(): boolean;
    /** The set of displayed categories defined by the viewport's [[CategorySelectorState]] has changed. */
    get viewedCategories(): boolean;
    /** The set of models to be displayed in the viewport has changed. */
    get viewedModels(): boolean;
    /** The [[DisplayStyleState]] or its settings such as [ViewFlags]($common) have changed. */
    get displayStyle(): boolean;
    /** The [[FeatureOverrideProvider]] has changed, or its internal state has changed such that its overrides must be recomputed.
     * @see [[Viewport.addFeatureOverrideProvider]] and [[Viewport.setFeatureOverrideProviderChanged]].
     */
    get featureOverrideProvider(): boolean;
    /** [[Vewport.changeView]] was used to replace the previous [[ViewState]] with a new one. */
    get viewState(): boolean;
    /** The [[PerModelCategoryVisibility.Overrides]] associated with the viewport have changed.
     * @beta
     */
    get viewedCategoriesPerModel(): boolean;
    /** Returns true if any of the specified flags are set. */
    isSet(flags: ChangeFlag): boolean;
    /** Returns true if all of the specified flags are set. */
    areAllSet(flags: ChangeFlag): boolean;
    /** Returns true if any aspects affecting [[FeatureSymbology.Overrides]] have changed. */
    get areFeatureOverridesDirty(): boolean;
    /** Returns true if any aspect at all has changed. */
    get hasChanges(): boolean;
    /** The underlying bitmask indicating the state of each individual flag. */
    get value(): ChangeFlag;
}
/** A [[ChangeFlags]] that permits modifying the states of individual [[ChangeFlag]]s.
 * @public
 */
export declare class MutableChangeFlags extends ChangeFlags {
    /** Create a new MutableChangeFlags.
     * @param flags The initial flags that should be set.
     */
    constructor(flags?: ChangeFlag);
    /** Set all of the specified flags. */
    private set;
    setAlwaysDrawn(): void;
    setNeverDrawn(): void;
    setViewedCategories(): void;
    setViewedModels(): void;
    setDisplayStyle(): void;
    setFeatureOverrideProvider(): void;
    setViewState(): void;
    setViewedCategoriesPerModel(): void;
    /** Clear all of the specified flags. By default, clears all flags. */
    clear(flags?: ChangeFlag): void;
}
//# sourceMappingURL=ChangeFlags.d.ts.map