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

declare const useExpandWidget: (component: LitElement & Pick<Expand, "icon" | "label" | "viewModel" | "autoCollapse" | "closeOnEsc" | "collapseIcon" | "collapseTooltip" | "content" | "expandIcon" | "expandTooltip" | "expanded" | "focusTrapDisabled" | "group" | "iconNumber" | "mode" | "placement"> & {
    state?: unknown;
    viewModel?: __esri.ExpandViewModel | 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>;
}) => Expand;
/**
 * The Expand component acts as a clickable button for displaying interactive content, most commonly other components.
 *
 * [Read more...](https://developers.arcgis.com/javascript/latest/references/map-components/arcgis-expand/)
 */
export declare class ArcgisExpand extends LitElement {
    /**
     * Automatically collapses the expand widget instance when the view's
     * viewpoint updates.
     *
     * @default false
     */
    autoCollapse: 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://developers.arcgis.com/javascript/latest/references/map-components/arcgis-expand/#destroy) method when you are done to
     * prevent memory leaks.
     *
     * @default false
     */
    autoDestroyDisabled: boolean;
    /**
     * When true, the Expand widget will close after the Escape key is pressed when the keyboard focus is within its content.
     *
     * @default true
     */
    closeOnEsc: boolean | Function;
    /**
     * Calcite icon used to style the Expand button when the [content](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Expand.html#content) can be collapsed.
     *
     * @default "chevrons-right"
     */
    collapseIcon: string;
    /**
     * Tooltip to display to indicate Expand widget can be collapsed.
     *
     * @default "Collapse" (English locale)
     */
    collapseTooltip: string;
    /**
     * Calcite icon used when the widget is collapsed.
     *
     * @default "chevrons-left"
     */
    expandIcon: string | nullish;
    /**
     * Tooltip to display to indicate Expand widget can be expanded.
     *
     * @default "Expand" (English locale)
     */
    expandTooltip: string;
    /**
     * Indicates whether the widget is currently expanded or not.
     *
     * @default false
     */
    expanded: boolean;
    /**
     * Disables focus trapping within the expand widget.
     *
     * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Expand.html#focusTrapDisabled)
     *
     * @deprecated since 4.33, use [`focusTrapDisabled`](#focusTrapDisabled) instead.
     * @default false
     */
    focusTrapEnabled: boolean;
    /**
     * Disables focus trapping within the expand component.
     *
     * @since 4.33
     * @default false
     */
    focusTrapDisabled: boolean;
    /**
     * This value associates two or more Expand widget instances with each other, allowing one
     * instance to auto collapse when another instance in the same group is expanded.
     *
     * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Expand.html#group)
     */
    group: string | nullish;
    /**
     * A number to display at the corner of the widget to indicate the number of, for example, open issues or unread notices.
     *
     * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Expand.html#iconNumber)
     */
    iconNumber: number;
    /**
     * The widget's default label.
     *
     * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Expand.html#label)
     */
    label: string;
    /**
     * The mode in which the widget displays.
     *
     * @default "auto"
     */
    mode: "auto" | "floating" | "drawer";
    /**
     * The placement used by the [calcite popover](https://developers.arcgis.com/calcite-design-system/components/popover/) when the widget is expanded.
     *
     * @default null
     */
    placement: nullish | "left" | "right" | "top" | "bottom" | "auto" | "auto-start" | "auto-end" | "top-start" | "top-end" | "bottom-start" | "bottom-end" | "right-start" | "right-end" | "left-start" | "left-end" | "leading-start" | "leading" | "leading-end" | "trailing-end" | "trailing" | "trailing-start";
    /** @default "top-right" */
    position: __esri.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://developers.arcgis.com/javascript/latest/programming-patterns/#associate-components-with-a-map-or-scene-component)
     */
    referenceElement?: ArcgisReferenceElement | string;
    collapse(): Promise<void>;
    /** Permanently destroy the component. */
    destroy(): Promise<void>;
    expand(): Promise<void>;
    toggle(): Promise<void>;
    /** Emitted when the component associated with a map or scene view is is ready to be interacted with. */
    readonly arcgisReady: TargetedEvent<this, void>;
}
export {};
