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

declare const useElevationProfileWidget: (component: LitElement & Pick<ElevationProfile, "icon" | "label" | "viewModel" | "input" | "unit" | "profiles" | "unitOptions"> & {
    state?: unknown;
    viewModel?: __esri.ElevationProfileViewModel | undefined;
    closed?: boolean;
    icon: import('@arcgis/components-utils').Nil | string;
    label: import('@arcgis/components-utils').Nil | string;
    referenceElement?: ArcgisReferenceElement | string;
    position: __esri.UIPosition;
    arcgisReady: import('@arcgis/lumina').EventEmitter;
    arcgisPropertyChange: import('@arcgis/lumina').EventEmitter<{
        name: string;
    }> | undefined;
    el: HTMLElement & {
        childElem?: HTMLElement & {
            ownedBy?: HTMLElement;
        };
        view?: __esri.LinkChartView | __esri.MapView | __esri.SceneView;
    };
    autoDestroyDisabled: boolean;
    destroy: () => Promise<void>;
}) => ElevationProfile;
/**
 * The Elevation Profile component is used to generate and display an elevation profile from an [input line graphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-ElevationProfile.html#input).
 *
 * **See also**
 *
 * - [Sample - Elevation Profile component](https://developers.arcgis.com/javascript/latest/sample-code/elevation-profile/)
 *
 * [Read more...](https://developers.arcgis.com/javascript/latest/references/map-components/arcgis-elevation-profile/)
 */
export declare class ArcgisElevationProfile 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://developers.arcgis.com/javascript/latest/references/map-components/arcgis-elevation-profile/#destroy) method when you are done to
     * prevent memory leaks.
     *
     * @default false
     */
    autoDestroyDisabled: boolean;
    /** Units which have been selected according to the magnitude of the elevations and distances that are to be displayed in the component, according to the selected unit or unit system. */
    readonly effectiveUnits: __esri.EffectiveUnits;
    /** @default false */
    hideChart: boolean;
    /** @default false */
    hideClearButton: boolean;
    /** @default false */
    hideLegend: boolean;
    /** @default false */
    hideSelectButton: boolean;
    /** @default false */
    hideSettingsButton: boolean;
    /** @default false */
    hideSketchButton: boolean;
    /** @default false */
    hideUniformChartScalingToggle: boolean;
    /** @default false */
    hideUnitSelector: boolean;
    /**
     * Whether the graphic used as [input](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-ElevationProfile.html#input)
     * is highlighted.
     *
     * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-ElevationProfile-ElevationProfileViewModel.html#highlightEnabled)
     *
     * @default true
     */
    highlightEnabled: boolean;
    /**
     * The position, in the range [0, 1], being hovered in the graph.
     *
     * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-ElevationProfile-ElevationProfileViewModel.html#hoveredChartPosition)
     */
    hoveredChartPosition: number | nullish;
    /**
     * 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://developers.arcgis.com/calcite-design-system/icons/)
     *
     * @default "altitude"
     */
    icon: string;
    /**
     * The input path along which elevation will be queried in order to generate an elevation profile.
     *
     * [Read more](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-ElevationProfile.html#input)
     *
     * @default null
     */
    input: nullish | __esri.Graphic;
    /** The component's default label. */
    label: string;
    /** @default "bottom-left" */
    position: __esri.UIPosition;
    /**
     * Collection of elevation profile lines which are to be generated and displayed in the component's chart.
     *
     * [Read more](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-ElevationProfile.html#profiles)
     */
    profiles: __esri.Collection<__esri.ElevationProfileLineGround | __esri.ElevationProfileLineInput | __esri.ElevationProfileLineQuery | __esri.ElevationProfileLineView>;
    /**
     * The progress, between 0 and 1 of generating all the configured elevation
     * profiles.
     *
     * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-ElevationProfile-ElevationProfileViewModel.html#progress)
     */
    readonly progress: number;
    /**
     * 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://developers.arcgis.com/javascript/latest/programming-patterns/#associate-components-with-a-map-or-scene-component)
     */
    referenceElement?: ArcgisReferenceElement | string;
    /**
     * The component's state. The values mean the following:
     *
     * * `disabled` -  component is being created
     * * `ready` - component is ready; no path configured and no interactive operation ongoing
     * * `creating` - user is creating a new input path
     * * `created` - input path is configured but no interactive operation is ongoing
     * * `selecting` - user is selecting an existing input path
     * * `selected` - user selected an existing input path
     *
     * @default "disabled"
     */
    readonly state: "ready" | "selected" | "disabled" | "creating" | "created" | "selecting";
    /**
     * Whether the chart should use a uniform scale for the X and Y axes.
     *
     * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-ElevationProfile-ElevationProfileViewModel.html#uniformChartScaling)
     *
     * @default false
     */
    uniformChartScaling: boolean;
    /**
     * Unit system (imperial, metric) or specific unit used for displaying the elevation and distance values.
     *
     * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-ElevationProfile.html#unit)
     */
    unit: __esri.SystemOrLengthUnit;
    /**
     * List of available units and unit systems (imperial, metric) for displaying the elevation and distance values.
     *
     * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-ElevationProfile.html#unitOptions)
     */
    unitOptions: __esri.SystemOrLengthUnit[];
    /** Permanently destroy the component. */
    destroy(): Promise<void>;
    /** Switches to the "creating" state in which the user can draw a new line. */
    start(): Promise<void>;
    /** Stops the creation operation. */
    stop(): Promise<void>;
    /** Emitted when the value of a property is changed. Use this to listen to changes to properties. */
    readonly arcgisPropertyChange: TargetedEvent<this, {
        name: "state" | "input" | "progress" | "effectiveUnits";
    }>;
    /** Emitted when the component associated with a map or scene view is is ready to be interacted with. */
    readonly arcgisReady: TargetedEvent<this, void>;
}
export {};
