/// <reference types="@geoscene/core/interfaces.d.ts" />
/// <reference types="../../index.d.ts" />
import { Use } from '@arcgis/lumina/controllers';
import { default as BuildingExplorer } from '@geoscene/core/widgets/BuildingExplorer.js';
import { PublicLitElement as LitElement, TargetedEvent } from '@arcgis/lumina';
import { GeosceneReferenceElement } from '../../utils/component-utils';

declare const useBuildingExplorerWidget: (component: LitElement & Pick<BuildingExplorer, "icon" | "label" | "viewModel" | "headingLevel" | "layers"> & {
    state?: unknown;
    viewModel?: __geoscene.BuildingExplorerViewModel | undefined;
    closed?: boolean;
    icon: import('@arcgis/components-utils').Nil | string;
    label: import('@arcgis/components-utils').Nil | string;
    referenceElement?: GeosceneReferenceElement | string;
    position: __geoscene.UIPosition;
    geosceneReady: import('@arcgis/lumina').EventEmitter;
    geoscenePropertyChange: import('@arcgis/lumina').EventEmitter<{
        name: string;
    }> | undefined;
    el: HTMLElement & {
        childElem?: HTMLElement & {
            ownedBy?: HTMLElement;
        };
        view
        /** @copyDoc */
        ?: __geoscene.LinkChartView | __geoscene.MapView | __geoscene.SceneView;
    };
    autoDestroyDisabled: boolean;
    destroy: () => Promise<void>;
}) => BuildingExplorer;
/**
 * The Building Explorer component is used to filter and explore the various components of [BuildingSceneLayers](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-layers-BuildingSceneLayer.html). BuildingSceneLayers are complex digital models of buildings and interiors and can contain thousands of components grouped in sublayers. Using this component, buildings can be filtered by level, construction phase or by disciplines and categories.
 *
 * **Known limitations**
 *
 * Building Explorer is only supported in a 3D [Scene](https://doc.geoscene.cn/javascript/4.33/references/map-components/geoscene-scene/) component.
 *
 * [Read more...](https://doc.geoscene.cn/javascript/4.33/references/map-components/geoscene-building-explorer/)
 */
export declare class GeosceneBuildingExplorer extends LitElement {
    /**
     * If true, the component will not be destroyed automatically when it is
     * disconnected from the document. This is useful when you want to move the
     * component to a different place on the page, or temporarily hide it. If this
     * is set, make sure to call the [destroy](https://doc.geoscene.cn/javascript/4.33/references/map-components/geoscene-building-explorer/#destroy) method when you are done to
     * prevent memory leaks.
     *
     * @default false
     */
    autoDestroyDisabled: boolean;
    /**
     * Indicates the heading level to use for the component title.
     *
     * @default 3
     */
    headingLevel: number;
    /** @default false */
    hideDisciplines: boolean | undefined;
    /** @default false */
    hideLevels: boolean | undefined;
    /** @default false */
    hidePhases: boolean | undefined;
    /**
     * Icon which represents the component. Typically used when the component is controlled by another component (e.g. by the Expand component).
     *
     * See also: [Calcite Icons](https://doc.geoscene.cn/calcite-design-system/icons/)
     *
     * @default "organization"
     */
    icon: string;
    /** The component's default label. */
    label: string;
    /**
     * A [collection](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-core-Collection.html)
     * of layers of type [BuildingSceneLayer](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-layers-BuildingSceneLayer.html)
     * that are added to the componen for exploration.
     *
     * [Read more](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-BuildingExplorer.html#layers)
     */
    layers: __geoscene.Collection<__geoscene.BuildingSceneLayer>;
    /**
     * Contains information about the level filter, such as
     * the value selected by the user in the Level element
     * or the minimum and maximum allowed values.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-BuildingExplorer-BuildingExplorerViewModel.html#level)
     */
    readonly level: __geoscene.BuildingLevel;
    /**
     * Contains information about the construction phase filter, such as
     * the value selected by the user in the Construction phases element
     * and the minimum and maximum allowed values.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-BuildingExplorer-BuildingExplorerViewModel.html#phase)
     */
    readonly phase: __geoscene.BuildingPhase;
    /** @default "bottom-left" */
    position: __geoscene.UIPosition;
    /**
     * By assigning the `id` attribute of the Map or Scene component to this property, you can position a child component anywhere in the DOM while still maintaining a connection to the Map or Scene.
     *
     * @see [Associate components with a Map or Scene component](https://doc.geoscene.cn/javascript/4.33/programming-patterns/#associate-components-with-a-map-or-scene-component)
     */
    referenceElement?: GeosceneReferenceElement | string;
    /**
     * The component's state. The values mean the following:
     *
     * * `disabled` -  	component is being created
     * * `loading` - layers and statistics are loading
     * * `ready` - component is ready
     * * `failed` - component failed to load data
     *
     * @default "disabled"
     */
    readonly state: "ready" | "loading" | "disabled" | "failed";
    /** Permanently destroy the component. */
    destroy(): Promise<void>;
    /** Emitted when the value of a property is changed. Use this to listen to changes to properties. */
    readonly geoscenePropertyChange: TargetedEvent<this, {
        name: "state" | "level" | "phase";
    }>;
    /** Emitted when the component associated with a map or scene view is is ready to be interacted with. */
    readonly geosceneReady: TargetedEvent<this, void>;
}
export {};