/// <reference types="@arcgis/core/interfaces.d.ts" />
/// <reference types="../../index.d.ts" />
import { Action, VisibilityAppearance } from '../../utils/action-utils';
import { TableSupportedLayers } from '../../utils/layer-list-utils';
import { css as LayerListCSS } from '../arcgis-layer-list/css';
import { JsxNode, PublicLitElement as LitElement, TargetedEvent } from '@arcgis/lumina';

type ListDisplayMode = "flat" | "nested";
type DragDetail = Parameters<HTMLCalciteSortableListElement["canPull"]>[0];
type UnionListItem = __esri.ListItem | __esri.TableListListItem;
type UnionCSS = typeof LayerListCSS;
/** @private */
export declare class ArcgisLayerListItem extends LitElement {
    activeItem?: UnionListItem;
    canMove?: ({ dragEl, fromEl, toEl }: DragDetail, type: "pull" | "put") => boolean;
    css: UnionCSS;
    displayMode: ListDisplayMode;
    /** @default false */
    hideCatalogLayerList: boolean;
    /** @default false */
    showCloseButton: boolean;
    /** @default false */
    showCollapseButton: boolean;
    /** @default false */
    showErrors: boolean;
    /** @default false */
    showFilter: boolean;
    /** @default false */
    hideFlow: boolean;
    /** @default false */
    showHeading: boolean;
    /** @default false */
    hideStatusIndicators: boolean;
    /** @default false */
    showTemporaryLayerIndicators: boolean;
    /** @default false */
    showTemporaryTableIndicators: boolean;
    /** @default false */
    dragEnabled: boolean;
    item: UnionListItem;
    layerTablesEnabled?: __esri.Collection<TableSupportedLayers>;
    /** @default false */
    listModeDisabled: boolean;
    handleAction: (action: Action, item: UnionListItem) => void;
    handlePanelOpen: () => void;
    handleCatalogOpen?: (item: __esri.ListItem) => void;
    handleTablesOpen?: (item: __esri.ListItem) => void;
    handleSelectedDragItemLayerUidChange?: (uid: string | null) => void;
    handleTooltipReferenceChange?: (id: string, element: HTMLSpanElement | null) => void;
    parent?: UnionListItem;
    parentTitles?: string[];
    rootGroupUid: string;
    selectionMode: HTMLCalciteListElement["selectionMode"];
    selectedItems: __esri.Collection<UnionListItem>;
    selectedDragItemLayerUid?: string;
    visibilityAppearance?: VisibilityAppearance;
    /**
     * 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-layer-list-item/#destroy) method when you are done to
     * prevent memory leaks.
     *
     * @default false
     */
    autoDestroyDisabled: boolean;
    /** Permanently destroy the component. */
    destroy(): Promise<void>;
}
export {};
