import { OjWebElement } from '../';
/**
 * This is the base class for oj-treemap WebElement, and is generated from the
 * component's metadata. Do not modify these contents since they'll be replaced
 * during the next generation.
 * Put overrides into the WebElements's subclass, OjTreemap.ts.
 */
export declare class OjTreemapBase extends OjWebElement {
    /**
     * Gets the value of <code>animationDuration</code> property.
     * Specifies the animation duration in milliseconds. For data change animations with multiple stages, the value specifies the duration of each stage.
     * @return The value of <code>animationDuration</code> property.
     *
     */
    getAnimationDuration(): Promise<number>;
    /**
     * Gets the value of <code>animationOnDataChange</code> property.
     * Specifies the animation that is applied on data changes.
     * @return The value of <code>animationOnDataChange</code> property.
     *
     */
    getAnimationOnDataChange(): Promise<string>;
    /**
     * Gets the value of <code>animationOnDisplay</code> property.
     * Specifies the animation that is shown on initial display.
     * @return The value of <code>animationOnDisplay</code> property.
     *
     */
    getAnimationOnDisplay(): Promise<string>;
    /**
     * Gets the value of <code>animationUpdateColor</code> property.
     * Specifies the color displayed during a data change animation when a node is updated.
     * @return The value of <code>animationUpdateColor</code> property.
     *
     */
    getAnimationUpdateColor(): Promise<string>;
    /**
     * Gets the value of <code>as</code> property.
     * An alias for the '$current' context variable passed to slot content for the nodeTemplate slot.
     * @return The value of <code>as</code> property.
     * @deprecated Since 6.2.0. Set the alias directly on the template element using the data-oj-as attribute instead.
     */
    getAs(): Promise<string>;
    /**
     * Gets the value of <code>colorLabel</code> property.
     * Specifies the label displayed in the legend describing the color metric of the treemap.
     * @return The value of <code>colorLabel</code> property.
     *
     */
    getColorLabel(): Promise<string>;
    /**
     * Gets the value of <code>displayLevels</code> property.
     * The number of levels of nodes to display. By default all nodes are displayed.
     * @return The value of <code>displayLevels</code> property.
     *
     */
    getDisplayLevels(): Promise<number>;
    /**
     * Gets the value of <code>drilling</code> property.
     * Specifies whether drilling is enabled. Drillable nodes will show a pointer cursor on hover and fire ojBeforeDrill and ojDrill events on click (double click if selection is enabled). See the Help documentation for more information.
     * @return The value of <code>drilling</code> property.
     *
     */
    getDrilling(): Promise<string>;
    /**
     * Gets the value of <code>groupGaps</code> property.
     * Specifies whether gaps are displayed between groups. Gaps can be useful for drawing attention to the differences between groups.
     * @return The value of <code>groupGaps</code> property.
     *
     */
    getGroupGaps(): Promise<string>;
    /**
     * Sets the value of <code>hiddenCategories</code> property.
     * An array of category strings used for filtering. Nodes with any category matching an item in this array will be filtered.
     * @param hiddenCategories The value to set for <code>hiddenCategories</code>
     *
     */
    changeHiddenCategories(hiddenCategories: Array<string>): Promise<void>;
    /**
     * Gets the value of <code>hiddenCategories</code> property.
     * An array of category strings used for filtering. Nodes with any category matching an item in this array will be filtered.
     * @return The value of <code>hiddenCategories</code> property.
     *
     */
    getHiddenCategories(): Promise<Array<string>>;
    /**
     * Gets the value of <code>highlightMatch</code> property.
     * The matching condition for the highlightedCategories property. See the Help documentation for more information.
     * @return The value of <code>highlightMatch</code> property.
     *
     */
    getHighlightMatch(): Promise<string>;
    /**
     * Gets the value of <code>highlightMode</code> property.
     * Specifies whether the highlight-mode should be by category or descendants.
     * @return The value of <code>highlightMode</code> property.
     *
     */
    getHighlightMode(): Promise<string>;
    /**
     * Sets the value of <code>highlightedCategories</code> property.
     * An array of category strings used for highlighting. Nodes matching categories in this array will be highlighted.
     * @param highlightedCategories The value to set for <code>highlightedCategories</code>
     *
     */
    changeHighlightedCategories(highlightedCategories: Array<string>): Promise<void>;
    /**
     * Gets the value of <code>highlightedCategories</code> property.
     * An array of category strings used for highlighting. Nodes matching categories in this array will be highlighted.
     * @return The value of <code>highlightedCategories</code> property.
     *
     */
    getHighlightedCategories(): Promise<Array<string>>;
    /**
     * Gets the value of <code>hoverBehavior</code> property.
     * Defines the behavior applied when hovering over the nodes.
     * @return The value of <code>hoverBehavior</code> property.
     *
     */
    getHoverBehavior(): Promise<string>;
    /**
     * Gets the value of <code>hoverBehaviorDelay</code> property.
     * Specifies initial hover delay in milliseconds for highlighting nodes.
     * @return The value of <code>hoverBehaviorDelay</code> property.
     *
     */
    getHoverBehaviorDelay(): Promise<number>;
    /**
     * Sets the value of <code>isolatedNode</code> property.
     * The id of the initially isolated node.
     * @param isolatedNode The value to set for <code>isolatedNode</code>
     *
     */
    changeIsolatedNode(isolatedNode: any): Promise<void>;
    /**
     * Gets the value of <code>isolatedNode</code> property.
     * The id of the initially isolated node.
     * @return The value of <code>isolatedNode</code> property.
     *
     */
    getIsolatedNode(): Promise<any>;
    /**
     * Gets the value of <code>layout</code> property.
     * Specifies the layout of the treemap. See the Help documentation for more information.
     * @return The value of <code>layout</code> property.
     *
     */
    getLayout(): Promise<string>;
    /**
     * Gets the value of <code>nodeContent</code> property.
     * An object defining custom node content for the treemap. Only leaf nodes with no child nodes will have the custom content rendered.
     * @return The value of <code>nodeContent</code> property.
     *
     */
    getNodeContent(): Promise<NodeContent>;
    /**
     * Gets the value of <code>nodeDefaults</code> property.
     * An object defining default properties for the nodes. See the Help documentation for more information.
     * @return The value of <code>nodeDefaults</code> property.
     *
     */
    getNodeDefaults(): Promise<NodeDefaults>;
    /**
     * Gets the value of <code>nodeSeparators</code> property.
     * Specifies the visual effect for separating the nodes from each other. This allows for adjacent nodes of the same color to be distinguished.
     * @return The value of <code>nodeSeparators</code> property.
     *
     */
    getNodeSeparators(): Promise<string>;
    /**
     * Gets the value of <code>nodes</code> property.
     * An array of objects defining the data for the nodes. Also accepts a Promise for deferred data rendering.
     * @return The value of <code>nodes</code> property.
     *
     */
    getNodes(): Promise<Array<Nodes> | null | null>;
    /**
     * Gets the value of <code>rootNode</code> property.
     * The id of the root node. When specified, only the root node and children of the root will be displayed.
     * @return The value of <code>rootNode</code> property.
     *
     */
    getRootNode(): Promise<any>;
    /**
     * Sets the value of <code>selection</code> property.
     * An array containing the ids of the initially selected nodes.
     * @param selection The value to set for <code>selection</code>
     *
     */
    changeSelection(selection: Array<any>): Promise<void>;
    /**
     * Gets the value of <code>selection</code> property.
     * An array containing the ids of the initially selected nodes.
     * @return The value of <code>selection</code> property.
     *
     */
    getSelection(): Promise<Array<any>>;
    /**
     * Gets the value of <code>selectionMode</code> property.
     * Specifies the selection behavior on the treemap. See the Help documentation for more information.
     * @return The value of <code>selectionMode</code> property.
     *
     */
    getSelectionMode(): Promise<string>;
    /**
     * Gets the value of <code>sizeLabel</code> property.
     * Specifies the label used in the legend describing the size metric of the treemap.
     * @return The value of <code>sizeLabel</code> property.
     *
     */
    getSizeLabel(): Promise<string>;
    /**
     * Gets the value of <code>sorting</code> property.
     * Specifies whether the nodes are sorted by size. Nodes with the same parent are sorted in order of descending size.
     * @return The value of <code>sorting</code> property.
     *
     */
    getSorting(): Promise<string>;
    /**
     * Gets the value of <code>tooltip</code> property.
     * An object containing an optional callback function for tooltip customization.
     * @return The value of <code>tooltip</code> property.
     *
     */
    getTooltip(): Promise<Tooltip>;
    /**
     * Gets the value of <code>touchResponse</code> property.
     * Specifies configuration options for touch and hold delays on mobile devices. See the Help documentation for more information.
     * @return The value of <code>touchResponse</code> property.
     * @deprecated Since 18.0.0. This attribute is deprecated and no longer recommended in the Redwood Design system. The "auto" value behavior will be applied instead.
     */
    getTouchResponse(): Promise<string>;
    /**
     * Gets the value of <code>trackResize</code> property.
     * Defines whether the element will automatically render in response to changes in size. See the Help documentation for more information.
     * @return The value of <code>trackResize</code> property.
     *
     */
    getTrackResize(): Promise<string>;
    /**
     * Gets the value of <code>translations</code> property.
     * A collection of translated resources from the translation bundle, or null if this component has no resources.
     * @return The value of <code>translations</code> property.
     *
     */
    getTranslations(): Promise<Translations | null>;
}
export interface NodeContent {
}
export interface NodeDefaults {
    /**
     * The label display behavior for group nodes.
     */
    groupLabelDisplay: string;
    /**
     * An object defining default properties for the node header. See the Help documentation for more information.
     */
    header: NodeDefaultsHeader;
    /**
     * The color of the node hover feedback.
     */
    hoverColor: string;
    /**
     * The label display behavior for leaf nodes.
     */
    labelDisplay: string;
    /**
     * The horizontal alignment for labels displayed within the node.
     */
    labelHalign: string;
    /**
     * The minimum number of visible characters needed to render a truncated label. See the Help documentation for more information.
     */
    labelMinLength: number;
    /**
     * The CSS style object defining the style of the label. See the Help documentation for more information.
     */
    labelStyle: object;
    /**
     * The vertical alignment for labels displayed within the node.
     */
    labelValign: string;
    /**
     * The inner color of the node selection feedback.
     */
    selectedInnerColor: string;
    /**
     * The outer color of the node selection feedback.
     */
    selectedOuterColor: string;
}
export interface NodeDefaultsHeader {
    /**
     * The background color of the node headers.
     */
    backgroundColor: string;
    /**
     * The border color of the node headers.
     */
    borderColor: string;
    /**
     * The background color of the node hover feedback.
     */
    hoverBackgroundColor: string;
    /**
     * The inner color of the node hover feedback.
     */
    hoverInnerColor: string;
    /**
     * The outer color of the node hover feedback.
     */
    hoverOuterColor: string;
    /**
     * Specifies whether isolate behavior is enabled on the node.
     */
    isolate: string;
    /**
     * The horizontal alignment of the header title.
     */
    labelHalign: string;
    /**
     * The CSS style string defining the style of the header title.
     */
    labelStyle: object;
    /**
     * The background color of the node selection feedback.
     */
    selectedBackgroundColor: string;
    /**
     * The inner color of the node selection feedback.
     */
    selectedInnerColor: string;
    /**
     * The outer color of the node selection feedback.
     */
    selectedOuterColor: string;
    /**
     * Specifies whether the node color should be displayed in the header.
     */
    useNodeColor: string;
}
export interface Nodes {
    /**
     * An optional array of category strings corresponding to this data item. This enables highlighting and filtering of individual data items through interactions with the legend and other visualization elements. The categories array of each node is required to be a superset of the categories array of its parent node. If not specified, the ids of the node and its ancestors will be used.
     */
    categories: Array<string>;
    /**
     * The fill color of the node.
     */
    color: string;
    /**
     * Specifies whether drilling is enabled for the node. Drillable nodes will show a pointer cursor on hover and fire an ojDrill event on click (double click if selection is enabled). To enable drilling for all nodes at once, use the drilling attribute in the top level.
     */
    drilling: string;
    /**
     * The label display behavior for group nodes.
     */
    groupLabelDisplay: string;
    /**
     * An object defining the properties for the node header.
     */
    header: NodesHeader;
    /**
     * The id of the node. For the DataProvider case, the key for the node will be used as the id.
     */
    id: any;
    /**
     * The label for this node.
     */
    label: string;
    /**
     * The label display behavior for leaf nodes.
     */
    labelDisplay: string;
    /**
     * The horizontal alignment for labels displayed within the node.
     */
    labelHalign: string;
    /**
     * The CSS style object defining the style of the label. The following style properties are supported: color, cursor, fontFamily, fontSize, fontStyle, fontWeight, textDecoration.
     */
    labelStyle: object;
    /**
     * The vertical alignment for labels displayed within the node.
     */
    labelValign: string;
    /**
     * An array of objects with properties for the child nodes.
     */
    nodes: Array<object>;
    /**
     * The pattern used to fill the node.
     */
    pattern: string;
    /**
     * Specifies whether or not the node will be selectable.
     */
    selectable: string;
    /**
     * The description of this element. Will be lazily created if a function is used. This is used for accessibility and also for customizing the tooltip text.
     */
    shortDesc: string | null;
    /**
     * The CSS style class to apply to the node. The style class and inline style will override any other styling specified through the properties. For tooltip interactivity, it's recommended to also pass a representative color to the node color attribute.
     */
    svgClassName: string;
    /**
     * The inline style to apply to the node. The style class and inline style will override any other styling specified through the properties. For tooltip interactivity, it's recommended to also pass a representative color to the node color attribute. Only SVG CSS style properties are supported.
     */
    svgStyle: object;
    /**
     * The value of the node, which determines the relative size of the node.
     */
    value: number;
}
export interface NodesHeader {
    /**
     * Specifies whether isolate behavior is enabled on the node.
     */
    isolate: string;
    /**
     * The horizontal alignment of the header title.
     */
    labelHalign: string;
    /**
     * The CSS style object defining the style of the header title. The following style properties are supported: color, cursor, fontFamily, fontSize, fontStyle, fontWeight, textDecoration.
     */
    labelStyle: object;
    /**
     * Specifies whether the node color should be displayed in the header.
     */
    useNodeColor: string;
}
export interface Tooltip {
}
export interface Translations {
    /**
     * Used to describe a container that contains controls.
     */
    accessibleContainsControls: string;
    /**
     * Used to describe the data visualization type for accessibility.
     */
    componentName: string;
    /**
     * Used to display a label and its value.
     */
    labelAndValue: string;
    /**
     * Text shown for clearing multiple selection on touch devices.
     */
    labelClearSelection: string;
    /**
     * Used for the color label.
     */
    labelColor: string;
    /**
     * Used to display a count out of a total.
     */
    labelCountWithTotal: string;
    /**
     * Label for data visualizations used for accessibility.
     */
    labelDataVisualization: string;
    /**
     * Text shown when the component receives invalid data.
     */
    labelInvalidData: string;
    /**
     * Text shown when the component receives no data.
     */
    labelNoData: string;
    /**
     * Used for the size label.
     */
    labelSize: string;
    /**
     * Used to describe the collapsed state for accessibility.
     */
    stateCollapsed: string;
    /**
     * Used to describe a drillable object for accessibility.
     */
    stateDrillable: string;
    /**
     * Used to describe the expanded state for accessibility.
     */
    stateExpanded: string;
    /**
     * Used to describe the hidden state for accessibility.
     */
    stateHidden: string;
    /**
     * Used to describe the isolated state for accessibility.
     */
    stateIsolated: string;
    /**
     * Used by the component when data is loaded.
     */
    stateLoaded: string;
    /**
     * Used by the component when waiting for data.
     */
    stateLoading: string;
    /**
     * Used to describe the maximized state for accessibility.
     */
    stateMaximized: string;
    /**
     * Used to describe the minimized state for accessibility.
     */
    stateMinimized: string;
    /**
     * Used to describe the selected state for accessibility.
     */
    stateSelected: string;
    /**
     * Used to describe the unselected state for accessibility.
     */
    stateUnselected: string;
    /**
     * Used to describe the visible state for accessibility.
     */
    stateVisible: string;
    /**
     * Used for the isolate tooltip.
     */
    tooltipIsolate: string;
    /**
     * Used for the restore tooltip.
     */
    tooltipRestore: string;
}
