/**-----------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the project root for more information
*-------------------------------------------------------------------------------------------*/
import { drawing } from '@progress/kendo-drawing';
import { Border, DashType, LegendItemVisualArgs } from '../../common/property-types';
import { SeriesMarkers } from './../series-item/markers.interface';
/**
 * Represents the configuration options of the legend item.
 */
export interface LegendItem {
    /**
     * Specifies the cursor style of the legend item.
     */
    cursor?: string;
    /**
       * Specifies the type of the legend item.
       * The default value is based on the series type.
       */
    type?: LegendItemType;
    /**
     * Specifies the configuration of the legend items of type `line`.
     * This is the default legend item type for all line and scatter series.
     */
    line?: LegendItemLine;
    /**
     * Specifies the configuration of the legend items of type `area`.
     * By default, all series except line and scatter use this legend type.
     */
    area?: LegendItemArea;
    /**
     * Specifies the markers configuration of the legend item.
     * Defaults to the series options.
     */
    markers?: LegendItemMarkers;
    /**
     * Specifies the highlight configuration of the legend item.
     */
    highlight?: LegendItemHighlight;
    /**
     * Specifies a function for creating a custom visual for the legend items.
     */
    visual?: (e: LegendItemVisualArgs) => drawing.Element;
}
/**
 * The configuration of the Chart legend item markers border.
 */
export interface LegendItemMarkersBorder extends Omit<Border, 'width'> {
}
/**
 * The configuration of the Chart legend item markers.
 */
export interface LegendItemMarkers extends Omit<SeriesMarkers, 'size' | 'border' | 'rotation' | 'from' | 'to'> {
    /**
     * Specifies the border of the markers.
     */
    border?: LegendItemMarkersBorder;
}
/**
 * The configuration of the Chart legend item highlight state.
 */
export interface LegendItemHighlight {
    /**
     * Determines whether the hover effect of the legend item is disabled.
     * When set to `false`, the hover effect is disabled.
     */
    visible?: boolean;
    /**
     * Specifies the `markers` configuration of the legend item when it is hovered.
     */
    markers?: LegendItemMarkers;
}
/**
 * The configuration of the Chart legend item of type `line`.
 * Defaults to the series options.
 */
export interface LegendItemLine {
    /**
     * Specifies the color of the legend item. Accepts a valid CSS color string, including HEX and RGB.
     * Defaults to the series color.
     */
    color?: string;
    /**
     * Specifies the opacity of the legend item.
     * Defaults to the series opacity.
     */
    opacity?: number;
    /**
     * Specifies the dash type of the legend item.
     * Defaults to the series dash type.
     */
    dashType?: DashType;
}
/**
 * The configuration of the Chart legend items of type `area`.
 * Defaults to the series options.
 */
export interface LegendItemArea {
    /**
     * Specifies the background color of the legend item. Accepts a valid CSS color string, including HEX and RGB.
     * Defaults to the series color.
     */
    background?: string;
    /**
     * Specifies the opacity of the legend item.
     * Defaults to the series opacity.
     */
    opacity?: number;
}
/**
 * Specifies the type of the Chart legend item.
 *
 * The options are `"line"` for rendering legend items as a line (default for line charts) and `"area"` for rendering legend items as a filled rectangle (default for area charts).
 */
export type LegendItemType = 'line' | 'area';
