/// <reference types="@geoscene/core/interfaces.d.ts" />
/// <reference types="../../index.d.ts" />
import { GeosceneReferenceElement } from '../../utils/component-utils';
import { Use } from '@arcgis/lumina/controllers';
import { default as LinkChartLayoutSwitcherViewModel } from '@geoscene/core/widgets/LinkChartLayoutSwitcher/LinkChartLayoutSwitcherViewModel.js';
import { JsxNode, PublicLitElement as LitElement, TargetedEvent } from '@arcgis/lumina';
declare enum DiagramLayoutValues {
    FORCE_DIRECTED = "organic-standard",
    COMMUNITY = "organic-community",
    SIMPLE = "basic-grid",
    HIERARCHICAL = "hierarchical-bottom-to-top",
    RADIAL_TREE = "radial-root-centric",
    SMART_TREE = "tree-left-to-right",
    GEOGRAPHIC = "geographic-organic-standard",
    CHRONOLOGICAL_SINGLE = "chronological-mono-timeline",
    CHRONOLOGICAL_MULTIPLE = "chronological-multi-timeline"
}
type DiagramLayoutType = `${DiagramLayoutValues}`;

declare const useLinkChartLayoutSwitcherViewModel: (component: LitElement & Pick<LinkChartLayoutSwitcherViewModel, never> & import('../../controllers/useViewModel').ViewModelControllerUses<LinkChartLayoutSwitcherViewModel>) => LinkChartLayoutSwitcherViewModel;
/**
 * A component for use in link charts that allows users to switch between different layouts. See [documentation on layouts](https://enterprise.geoscene.cn/en/knowledge/latest/knowledge-studio/change-the-layout-applied-to-a-link-chart.htm) for more details.
 *
 *
 * Note: Sign in to access the data in this demo, U/P: `viewer01`/`I68VGU^nMurF`
 *
 * [Read more...](https://doc.geoscene.cn/javascript/4.33/references/map-components/geoscene-link-chart-layout-switcher/)
 */
export declare class GeosceneLinkChartLayoutSwitcher extends LitElement {
    /**
     * The appearance of the layout switcher. `dropdown` displays a button that is clicked to reveal a dropdown menu, while `menu-bar` displays a menu bar.
     *
     * @since 4.33
     * @default "dropdown"
     */
    appearance: "dropdown" | "menu-bar";
    /**
     * 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-link-chart-layout-switcher/#destroy) method when you are done to
     * prevent memory leaks.
     *
     * @default false
     */
    autoDestroyDisabled: boolean;
    /**
     * When `true`, the layout menu will not close when a layout is selected. Only applicable when `appearance` is `dropdown`.
     *
     * @since 4.33
     * @default false
     */
    closeOnSelectDisabled: boolean;
    /**
     * Icon displayed in the component's button, when `appearance` is `dropdown`.
     *
     * @see [Calcite Icon Search](https://doc.geoscene.cn/calcite-design-system/icons/)
     * @default "nodes-link"
     */
    icon?: string;
    /** The component's default label. */
    label?: string;
    /**
     * The current selected link chart layout.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-LinkChartLayoutSwitcher-LinkChartLayoutSwitcherViewModel.html#layout)
     *
     * @default "organic-standard"
     */
    readonly layout: DiagramLayoutType;
    /**
     * Replace localized message strings with your own strings.
     *
     * _**Note**: Individual message keys may change between releases._
     */
    messageOverrides?: typeof this.messages._overrides;
    /** @default "top-left" */
    position: __geoscene.UIPosition;
    /**
     * Prevents extent from updating on changes to the layout.
     *
     * [Read more...](https://doc.geoscene.cn/javascript/4.33/api-reference/geoscene-widgets-LinkChartLayoutSwitcher-LinkChartLayoutSwitcherViewModel.html#preventExtentUpdate)
     *
     * @default false
     */
    preventExtentUpdate: boolean;
    /**
     * 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 also:
     * - [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 current state of the component.
     *
     * @default "loading"
     */
    readonly state: "ready" | "loading" | "disabled";
    /** Permanently destroy the component. */
    destroy(): Promise<void>;
    /** Switches the layout of the link chart to the value provided. */
    switchLayout(newLayout: "basic-grid" | "chronological-mono-timeline" | "chronological-multi-timeline" | "geographic-organic-standard" | "hierarchical-bottom-to-top" | "organic-community" | "organic-standard" | "radial-root-centric" | "tree-left-to-right"): Promise<void>;
    /**
     * Fires when component has completed the layout switch
     *
     * @example
     * ```js
     * layoutswitcher.addEventListener("geosceneSwitchLayout", (event) => {
     *   console.log("Layout Switched");
     * });
     * ```
     */
    readonly geosceneSwitchLayout: TargetedEvent<this, __geoscene.LinkChartLayoutSwitcherViewModelSwitchLayoutEvent>;
    /** Emitted when the value of a property is changed. Use this to listen to changes to properties. */
    readonly geoscenePropertyChange: TargetedEvent<this, {
        name: "state";
    }>;
    /** Emitted when the component associated with a map or scene view is is ready to be interacted with. */
    readonly geosceneReady: TargetedEvent<this, void>;
    private messages: Partial<{
        layoutOptions: string;
        forceDirected: string;
        community: string;
        simple: string;
        hierarchical: string;
        radialTree: string;
        smartTree: string;
        geographic: string;
        chronologicalSingle: string;
        chronologicalMultiple: string;
        basicLayoutCategory: string;
        organicLayoutCategory: string;
        treeLayoutCategory: string;
        hierarchicalLayoutCategory: string;
        chronologicalLayoutCategory: string;
    }> & import('@arcgis/lumina/controllers').T9nMeta<{
        layoutOptions: string;
        forceDirected: string;
        community: string;
        simple: string;
        hierarchical: string;
        radialTree: string;
        smartTree: string;
        geographic: string;
        chronologicalSingle: string;
        chronologicalMultiple: string;
        basicLayoutCategory: string;
        organicLayoutCategory: string;
        treeLayoutCategory: string;
        hierarchicalLayoutCategory: string;
        chronologicalLayoutCategory: string;
    }>;
}
export {};