/** @packageDocumentation
 * @module Views
 */
import { Id64Arg, Id64String, ObservableSet } from "@itwin/core-bentley";
import { ModelSelectorProps } from "@itwin/core-common";
import { ElementState } from "./EntityState";
import { IModelConnection } from "./IModelConnection";
/** The state of a [ModelSelector]($backend). It holds a set of ids of GeometricModels for a [[SpatialViewState]].
 * It defines the set of [[ModelState]]s drawn within the view as a set of IDs.
 * @public
 * @extensions
 */
export declare class ModelSelectorState extends ElementState {
    static get className(): string;
    private readonly _models;
    /** The set of ModelIds of this ModelSelectorState */
    get models(): Set<string>;
    set models(models: Set<string>);
    /** @internal */
    get observableModels(): ObservableSet<string>;
    constructor(props: ModelSelectorProps, iModel: IModelConnection);
    /** The name of this ModelSelector */
    get name(): string;
    toJSON(): ModelSelectorProps;
    /** Determine if this model selector is logically equivalent to the specified model selector. Two model selectors are logically equivalent is
     * they have the same name and Id and contain the same set of models.
     * @param other The model selector to which to compare.
     * @returns true if the model selectors are logically equivalent.
     * @public
     */
    equalState(other: ModelSelectorState): boolean;
    /** Add one or more models to this ModelSelectorState */
    addModels(arg: Id64Arg): void;
    /** Drop one or more models from this ModelSelectorState */
    dropModels(arg: Id64Arg): void;
    /** Determine whether this ModelSelectorState includes the specified modelId value */
    has(id: string): boolean;
    /** Determine whether this ModelSelectorState includes the specified modelId */
    containsModel(modelId: Id64String): boolean;
    /** Make sure all models referenced by this ModelSelectorState are loaded. */
    load(): Promise<void>;
}
//# sourceMappingURL=ModelSelectorState.d.ts.map