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

declare const useFeaturesWidget: (component: LitElement & Pick<Features, "icon" | "label" | "viewModel" | "map" | "spatialReference" | "timeZone" | "content" | "headingLevel" | "goToOverride" | "collapsed" | "featureNavigationTop" | "features" | "headerActions" | "initialDisplayMode" | "promises" | "selectedFeatureIndex"> & {
    state?: unknown;
    viewModel?: __geoscene.FeaturesViewModel | 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?: __geoscene.LinkChartView | __geoscene.MapView | __geoscene.SceneView;
    };
    autoDestroyDisabled: boolean;
    destroy: () => Promise<void>;
}) => Features;
/**
 * The Features component allows users to view a feature's popupTemplate content such as attributes, actions, related records, etc., without having to be tied to the [View](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-views-View.html).
 *
 * [Read more...](https://doc.geoscene.cn/javascript/4.33/references/map-components/geoscene-features/)
 */
export declare class GeosceneFeatures extends LitElement {
    /**
     * Emitted when the component's close button is clicked.
     *
     * @since 4.33
     */
    readonly geosceneClose: TargetedEvent<this>;
    /**
     * [Collection](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-core-Collection.html) of [action](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-support-actions-ActionButton.html) or [action toggle](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-support-actions-ActionToggle.html) objects.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features-FeaturesViewModel.html#actions)
     */
    actions: __geoscene.Collection<__geoscene.ActionButton | __geoscene.ActionToggle>;
    /**
     * Indicates if the widget is active when it is visible and is not [waiting for results](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features-FeaturesViewModel.html#waitingForResult).
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#active)
     *
     * @default false
     */
    readonly active: boolean;
    /**
     * 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-features/#destroy) method when you are done to
     * prevent memory leaks.
     *
     * @default false
     */
    autoDestroyDisabled: boolean;
    /**
     * Indicates whether a component is closed. When `true`, the component will be hidden.
     *
     * @since 4.33
     * @default false
     */
    closed: boolean;
    /**
     * Indicates whether the popup displays its content.
     *
     * @default false
     */
    collapsed: boolean;
    /**
     * The content of the Features widget.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#content)
     */
    content: string | __geoscene.Widget | HTMLElement | nullish;
    /**
     * Indicates whether the feature navigation arrows are displayed at the top of the widget.
     *
     * @default false
     */
    featureNavigationTop: boolean;
    /**
     * Defines the specific [abilities](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Feature-FeatureViewModel.html#Abilities) that can be used when querying and displaying content.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features-FeaturesViewModel.html#featureViewModelAbilities)
     */
    featureViewModelAbilities: nullish | __geoscene.Abilities;
    /**
     * An array of features associated with the Features widget.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#features)
     */
    features: __geoscene.Graphic[];
    /**
     * The number of features to fetch at one time.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features-FeaturesViewModel.html#featuresPerPage)
     *
     * @default 20
     */
    featuresPerPage: number;
    /**
     * The title of the Features widget.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#title)
     */
    featuresTitle: string | nullish;
    /**
     * This function provides the ability to override either the
     * [MapView goTo()](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-views-MapView.html#goTo) or
     * [SceneView goTo()](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-views-SceneView.html#goTo) methods.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#goToOverride)
     */
    goToOverride: nullish | __geoscene.GoToOverride;
    /**
     * Indicates the heading level to use for the [title](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#title) of the widget.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#headingLevel)
     */
    headingLevel: number;
    /**
     * The actions that are displayed in the header of the widget.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#headerActions)
     */
    headerActions: __geoscene.Collection<__geoscene.ActionBase>;
    /**
     * Indicates whether to hide the action bar that holds the feature's [action](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features-FeaturesViewModel.html#actions).
     *
     * @default false
     */
    hideActionBar: boolean;
    /**
     * Indicates whether to hide the close button.
     *
     * @default false
     */
    hideCloseButton: boolean;
    /**
     * Indicates whether to hide a heading and description on the widget feature menu list.
     *
     * @default false
     */
    hideFeatureMenuHeading: boolean;
    /**
     * Indicates whether to hide pagination for feature navigation.
     * This allows the user to scroll through various selected features using pagination arrows.
     *
     * @default false
     */
    hideFeatureNavigation: boolean;
    /**
     * Determines whether the component should be shown within its built-in [flow component](https://developers.geoscene.cn/calcite-design-system/components/flow/) or if the flow component should be excluded.
     * The component will be displayed within its original flow component if `false`.
     * The flow component will be omitted if set to `true`.
     * To place the component into an existing Calcite flow component, set this property to `false`.
     *
     * @default false
     */
    hideFlow: boolean;
    /**
     * Indicates whether is hide the heading.
     *
     * @default false
     */
    hideHeading: boolean;
    /**
     * Indicates whether to hide the loading spinner.
     *
     * @default false
     */
    hideSpinner: boolean;
    /**
     * Icon which represents the component.
     * Typically used when the component is controlled by another component (e.g. by the Expand component).
     *
     * @see [Calcite Icons](https://doc.geoscene.cn/calcite-design-system/icons/)
     * @default null
     */
    icon: string | nullish;
    /**
     * Indicates whether or not to include [defaultActions](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features-FeaturesViewModel.html#defaultActions).
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features-FeaturesViewModel.html#includeDefaultActions)
     *
     * @default true
     */
    includeDefaultActions: boolean;
    /**
     * Indicates whether to initially display a list of features, or the content for one feature.
     *
     * @default "feature"
     */
    initialDisplayMode: "feature" | "list";
    /**
     * The widget's default label.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#label)
     */
    label: string;
    /**
     * A map is required when the input [features](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#features) have a popupTemplate that contains [Arcade](https://doc.geoscene.cn/javascript/4.33/arcade) expressions in [ExpressionInfo](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-popup-ExpressionInfo.html) or [ExpressionContent](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-popup-content-ExpressionContent.html) that may use the `$map` profile variable to access data from layers within a map.
     *
     * @default null
     */
    map: __geoscene.Map | nullish;
    /** @default "bottom-left" */
    position: __geoscene.UIPosition;
    /**
     * An array of pending Promises that have not yet been fulfilled.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#promises)
     */
    promises: Promise<any>[];
    /**
     * 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 selected feature accessed by the Features widget.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#selectedFeature)
     */
    readonly selectedFeature: nullish | __geoscene.Graphic;
    /**
     * Index of the feature that is [selected](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#selectedFeature).
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#selectedFeatureIndex)
     */
    selectedFeatureIndex: number;
    /** @default false */
    showCollapseButton: boolean;
    /**
     * The spatial reference used for [Arcade](https://doc.geoscene.cn/javascript/4.33/arcade) operations.
     *
     * @default null
     */
    spatialReference: nullish | __geoscene.SpatialReference;
    /**
     * The current state of the component.
     *
     * @default "disabled"
     */
    readonly state: "ready" | "disabled";
    /**
     * Dates and times displayed in the widget will be displayed in this time zone.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-Features.html#timeZone)
     */
    timeZone: string;
    clear(): Promise<void>;
    /** Closes the component. */
    close(): Promise<void>;
    /** Permanently destroy the component. */
    destroy(): Promise<void>;
    /**
     * Use this method to return feature(s) at a given screen location.
     * These features are fetched from all of the [layer views](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-views-layers-LayerView.html).
     * In order to use this, a layer must already have an associated [PopupTemplate](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-PopupTemplate.html).
     * This method allows a developer to control how the input location is handled.
     */
    fetchFeatures(screenPoint: __geoscene.FeaturesFetchFeaturesScreenPoint, options?: __geoscene.FetchFeaturesOptions): Promise<__geoscene.FetchPopupFeaturesResult>;
    next(): Promise<__geoscene.FeaturesViewModel>;
    /** Opens Features with content defined either explicitly or driven from the [PopupTemplate](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-PopupTemplate.html) of input features. */
    open(options?: __geoscene.FeaturesOpenOptions): Promise<void>;
    previous(): Promise<__geoscene.FeaturesViewModel>;
    triggerAction(actionIndex: number): 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" | "selectedFeature" | "selectedFeatureIndex";
    }>;
    /** Emitted when the component associated with a map or scene view is is ready to be interacted with. */
    readonly geosceneReady: TargetedEvent<this, void>;
    /** Emitted when an action is triggered on the component. */
    readonly geosceneTriggerAction: TargetedEvent<this, __geoscene.FeaturesTriggerActionEvent>;
}
export {};