import type { AgAnnotation } from '../chart/annotationsOptions';
import type { AgInitialStateLegendOptions } from '../chart/legendOptions';
import type { Ratio } from '../chart/types';
import type { AgAutoScaledAxes } from '../chart/zoomOptions';
import type { AgPriceVolumeChartType } from '../presets/financial/priceVolumeOptions';
import type { AgActiveState } from './activeState';
import type { AgStateSerializableDate } from './stateTypes';
export interface AgInitialStateThemeableOptions {
    /** The initial zoom state. */
    zoom?: AgInitialStateZoomOptions;
    /** The initial legend series visibility state. */
    legend?: AgInitialStateLegendOptions[];
}
export interface AgInitialStateOptions {
    /** The initial picked item. */
    active?: AgActiveState;
    /** The initial set of annotations to display on the chart. */
    annotations?: AgAnnotation[];
    /** The initial chart type. */
    chartType?: AgInitialStateChartType;
    /** The initial collapsed datums by id, for Organization Charts. */
    collapsed?: string[];
    /** The initial legend series visibility state. */
    legend?: AgInitialStateLegendOptions[];
    /** The initial zoom state. */
    zoom?: AgInitialStateZoomOptions;
}
export type AgInitialStateChartType = AgPriceVolumeChartType;
export interface AgInitialStateZoomOptions {
    /** The initial zoom range for the x-axis. */
    rangeX?: AgInitialStateZoomRange;
    /** The initial zoom range for the y-axis. */
    rangeY?: AgInitialStateZoomRange;
    /** The initial zoom ratio for the x-axis. */
    ratioX?: AgInitialStateZoomRatio;
    /** The initial zoom ratio for the y-axis. */
    ratioY?: AgInitialStateZoomRatio;
    /** Axes that are zoomed by the auto scaling functionality. */
    autoScaledAxes?: AgAutoScaledAxes;
}
export interface AgInitialStateZoomRange {
    /** The start value of the zoom range. */
    start?: AgStateSerializableDate | number;
    /** The end value of the zoom range. */
    end?: AgStateSerializableDate | number;
}
export interface AgInitialStateZoomRatio {
    /** The start ratio of the zoom range. */
    start?: Ratio;
    /** The end ratio of the zoom range. */
    end?: Ratio;
}
