/**
 * @license
 *-------------------------------------------------------------------------------------------
 * Copyright © 2026 Progress Software Corporation. All rights reserved.
 * Licensed under commercial license. See LICENSE.md in the package root for more information
 *-------------------------------------------------------------------------------------------
 */
import { SankeyData, SankeyExportVisualOptions, SankeyHorizontalMargin, SankeyLabel, SankeyLabelDefaults, SankeyLabelStroke, SankeyLegendItem, SankeyLink, SankeyLinkDataItem, SankeyLinkDefaults, SankeyLinkHighlight, SankeyNode, SankeyNodeDataItem, SankeyNodeDefaults, SankeyFocusHighlight, SankeyNodeLabel, SankeyLinkLabel, SankeyOptions, SankeyTooltipEvent, SankeyTooltip as SankeyTooltipInterface, SankeyEvent as SankeyWidgetEvent } from '@progress/kendo-charts';
import { Legend, Title } from '../common/property-types';
import { Sankey } from './Sankey';
export type { SankeyData, SankeyExportVisualOptions, SankeyHorizontalMargin, SankeyLabel, SankeyLabelDefaults, SankeyLabelStroke, SankeyLegendItem, SankeyLink, SankeyLinkDataItem, SankeyLinkDefaults, SankeyLinkHighlight, SankeyNode, SankeyNodeDataItem, SankeyNodeDefaults, SankeyFocusHighlight, SankeyNodeLabel, SankeyLinkLabel, SankeyOptions };
/**
 * The Kendo UI for Vue Sankey event object.
 */
export interface SankeyEvent extends SankeyWidgetEvent {
    /**
     * The `Sankey` component that triggered the event.
     */
    target: typeof Sankey;
}
/**
 * Represents the Sankey title options.
 */
export interface SankeyTitle extends Title {
}
/**
 * Represents the Sankey legend options.
 */
export interface SankeyLegend extends Omit<Legend, 'inactiveItems' | 'item' | 'focusHighlight'> {
    /**
     * The configuration of the legend items.
     */
    item?: SankeyLegendItem;
}
/**
 * Represents the props of the Sankey tooltip content component.
 */
export interface TooltipContentProps {
    /**
     * Represents the dataItem object of the hovered node or link element.
     */
    dataItem: SankeyNodeDataItem | SankeyLinkDataItem;
    /**
     * The value of the hovered node element.
     * The value is available only when the hovered element is a node.
     */
    nodeValue?: number;
    /**
     * The `dir` attribute of the Sankey tooltip content component.
     */
    dir?: string;
}
interface TooltipAppendTo {
    /**
     * Defines the container to which the Tooltip will be appended. Defaults to [`body`](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/body).
     */
    appendTo?: HTMLElement | null;
}
/**
 * Represents the props of the Sankey tooltip component.
 *
 * @hidden
 */
export interface SankeyTooltipProps extends TooltipAppendTo {
    /**
     * The event object of the Sankey tooltip.
     */
    eventData: Pick<SankeyTooltipEvent, 'dataItem' | 'nodeValue' | 'targetType'>;
    /**
     * The distance between the tooltip and the mouse pointer in pixels.
     */
    offset: number;
    /**
     * The `dir` attribute of the Sankey tooltip.
     */
    dir?: string;
    /**
     * The tooltip data of the Sankey component.
     */
    tooltipData: SankeyTooltipEvent['tooltipData'];
    /**
     * The content component of the Sankey node tooltip. Can be string that is pointing to a namedSlot or a render function;
     */
    nodeContent?: any;
    /**
     * The content component of the Sankey link tooltip. Can be string that is pointing to a namedSlot or a render function;
     */
    linkContent?: any;
}
/**
 * Represents the Sankey tooltip configuration.
 */
export interface SankeyTooltip extends SankeyTooltipInterface, TooltipAppendTo {
    /**
     * Indicates whether the Sankey tooltips will be rendered.
     */
    visible?: boolean;
    /**
     * The distance between the tooltip and the mouse pointer in pixels.
     *
     * @default 12
     */
    offset?: number;
    /**
     * The content component of the Sankey node tooltip. Can be string that is pointing to a namedSlot or a render function;
     */
    nodeContent?: any;
    /**
     * The content component of the Sankey link tooltip. Can be string that is pointing to a namedSlot or a render function;
     */
    linkContent?: any;
}
/**
 * Represents the props of the Kendo UI for Vue [Sankey]({% slug overview_sankey %}) component.
 */
export interface SankeyProps {
    /**
     * The data of the Sankey component containing the `nodes` props.
     */
    dataNodes?: SankeyNode[];
    /**
     * The data of the Sankey component containing the `links` props.
     */
    dataLinks?: SankeyLink[];
    /**
     * The `links` default props of the Sankey component.
     * The value will be applied to all links unless overridden by the `links` prop of the `data` prop.
     */
    links?: SankeyLinkDefaults;
    /**
     * The `nodes` default props of the Sankey component.
     * The value will be applied to all nodes unless overridden by the `nodes` prop of the `data` prop.
     */
    nodes?: SankeyNodeDefaults;
    /**
     * The `labels` default props of the Sankey component.
     * The value will be applied to all labels unless overridden by the `nodes` label prop of the `data` prop.
     */
    labels?: SankeyLabelDefaults;
    /**
     * The title configuration of the Sankey component.
     */
    title?: SankeyTitle;
    /**
     * The legend configuration of the Sankey component.
     */
    legend?: SankeyLegend;
    /**
     * The configuration of the Sankey tooltips.
     */
    tooltip?: SankeyTooltip;
    /**
     * If set to `true`, the Sankey component will not perform automatic layout.
     */
    disableAutoLayout?: boolean;
    /**
     * If set to `true`, the Sankey keyboard navigation will be disabled.
     */
    disableKeyboardNavigation?: boolean;
    /**
     * Represents the `dir` HTML attribute.
     */
    dir?: string;
    /**
     * Fires when the mouse pointer enters a node. Similar to the `mouseenter` event.
     */
    onNodeenter?: (event: SankeyEvent) => void;
    /**
     * Fires when the mouse pointer leaves a node. Similar to the `mouseleave` event.
     */
    onNodeleave?: (event: SankeyEvent) => void;
    /**
     * Fires when the mouse pointer enters a link. Similar to the `mouseenter` event,
     */
    onLinkenter?: (event: SankeyEvent) => void;
    /**
     * Fires when the mouse pointer leaves a link. Similar to the `mouseleave` event.
     */
    onLinkleave?: (event: SankeyEvent) => void;
    /**
     * Fires when a node is clicked.
     */
    onNodeclick?: (event: SankeyEvent) => void;
    /**
     * Fires when a link is clicked.
     */
    onLinkclick?: (event: SankeyEvent) => void;
}
