/**
* DevExtreme (viz/common.d.ts)
* Version: 21.1.0 (build 21016-0316)
* Build date: Sat Jan 16 2021
*
* Copyright (c) 2012 - 2021 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import {
    dxChartSeriesTypesCommonSeries
} from './chart';

import {
    Font
} from './core/base_widget';

/**
 * Warning! This type is used for internal purposes. Do not import it directly.
 */
export type ChartSeriesType = 'area' | 'bar' | 'bubble' | 'candlestick' | 'fullstackedarea' | 'fullstackedbar' | 'fullstackedline' | 'fullstackedspline' | 'fullstackedsplinearea' | 'line' | 'rangearea' | 'rangebar' | 'scatter' | 'spline' | 'splinearea' | 'stackedarea' | 'stackedbar' | 'stackedline' | 'stackedspline' | 'stackedsplinearea' | 'steparea' | 'stepline' | 'stock';
/**
 * Warning! This type is used for internal purposes. Do not import it directly.
 */
export type DashStyleType = 'dash' | 'dot' | 'longDash' | 'solid';
/**
 * Warning! This type is used for internal purposes. Do not import it directly.
 */
export type TimeIntervalType = 'day' | 'hour' | 'millisecond' | 'minute' | 'month' | 'quarter' | 'second' | 'week' | 'year';
/**
 * Warning! This type is used for internal purposes. Do not import it directly.
 */
export type HatchingDirectionType = 'left' | 'none' | 'right';

/**
 * Warning! This type is used for internal purposes. Do not import it directly.
 */
export interface BaseLegend {
    /**
     */
    backgroundColor?: string;
    /**
     */
    border?: {
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      color?: string,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      cornerRadius?: number,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      dashStyle?: DashStyleType,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      opacity?: number,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      visible?: boolean,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      width?: number
    };
    /**
     */
    columnCount?: number;
    /**
     */
    columnItemSpacing?: number;
    /**
     */
    font?: Font;
    /**
     */
    horizontalAlignment?: 'center' | 'left' | 'right';
    /**
     */
    itemTextPosition?: 'bottom' | 'left' | 'right' | 'top';
    /**
     */
    itemsAlignment?: 'center' | 'left' | 'right';
    /**
     */
    margin?: number | {
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      bottom?: number,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      left?: number,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      right?: number,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      top?: number
    };
    /**
     */
    markerSize?: number;
    /**
     */
    orientation?: 'horizontal' | 'vertical';
    /**
     */
    paddingLeftRight?: number;
    /**
     */
    paddingTopBottom?: number;
    /**
     */
    rowCount?: number;
    /**
     */
    rowItemSpacing?: number;
    /**
     */
    title?: {
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      font?: Font,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      horizontalAlignment?: 'center' | 'left' | 'right',
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      margin?: {
        /**
         * Warning! This type is used for internal purposes. Do not import it directly.
         */
        bottom?: number,
        /**
         * Warning! This type is used for internal purposes. Do not import it directly.
         */
        left?: number,
        /**
         * Warning! This type is used for internal purposes. Do not import it directly.
         */
        right?: number,
        /**
         * Warning! This type is used for internal purposes. Do not import it directly.
         */
        top?: number
      },
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      placeholderSize?: number,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      subtitle?: {
        /**
         * Warning! This type is used for internal purposes. Do not import it directly.
         */
        font?: Font,
        /**
         * Warning! This type is used for internal purposes. Do not import it directly.
         */
        offset?: number,
        /**
         * Warning! This type is used for internal purposes. Do not import it directly.
         */
        text?: string
      } | string,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      text?: string,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      verticalAlignment?: 'bottom' | 'top'
    } | string;
    /**
     */
    verticalAlignment?: 'bottom' | 'top';
    /**
     */
    visible?: boolean;
}

/**
 * Warning! This type is used for internal purposes. Do not import it directly.
 */
export interface BaseLegendItem {
    /**
     */
    marker?: {
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      fill?: string,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      opacity?: number,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      size?: number,
      /**
       * Warning! This type is used for internal purposes. Do not import it directly.
       */
      state?: 'normal' | 'hovered' | 'selected'
    };
    /**
     */
    text?: string;
    /**
     */
    visible?: boolean;
}

/**
 * Warning! This type is used for internal purposes. Do not import it directly.
 */
export interface ChartSeries extends dxChartSeriesTypesCommonSeries {
    /**
     */
    name?: string;
    /**
     */
    tag?: any;
    /**
     */
    type?: ChartSeriesType;
}

/**
 * Warning! This type is used for internal purposes. Do not import it directly.
 */
export interface ScaleBreak {
    /**
     */
    endValue?: number | Date | string;
    /**
     */
    startValue?: number | Date | string;
}

/**
 * Warning! This type is used for internal purposes. Do not import it directly.
 */
export interface VizRange {
    /**
     */
    endValue?: number | Date | string;
    /**
     */
    length?: number | any | TimeIntervalType;
    /**
     */
    startValue?: number | Date | string;
}
