import { AxisDomain, AxisScale, ChartDataSourceItem, ChartExtend, ChartOptions, LineChartDataType } from '../../../types/vega-chart';
import { InputProcessor } from './input-processor';
import { LayoutProcessResultType } from './layout-input-processor';
declare type ScaleType = {
  scale: AxisScale<AxisDomain>;
  ticks: number;
};
/** The YAxisInputProcessor class generates Y-axis options for a line chart based on input data and previous layout results. */
export declare class YAxisInputProcessor implements InputProcessor<ChartOptions<LineChartDataType>, ChartExtend<AxisScale<AxisDomain>>, LayoutProcessResultType> {
  /**
   * This function generates the Y-axis options for a line chart based on the input data and previous layout results.
   *
   * @param {ChartOptions<LineChartDataType>} input - An object containing the chart options and data for a line chart. It includes the
   * dataSource and yAxis properties.
   * @param {LayoutProcessResultType} [previousOutput] - The output of the previous layout process,
   * which is an object containing the innerWidth and innerHeight of the chart. This parameter is
   * optional and can be undefined if it's the first layout process.
   * @returns {ChartExtend<AxisScale<AxisDomain>>} an object of type `ChartExtend<AxisScale<AxisDomain>>`, which is the result of calling the
   * `getAxisOptions` method of the `axisGenerator` object. This object contains options for the Y-axis
   * of a line chart, including the scale used for the axis.
   */
  process(input: ChartOptions<LineChartDataType>, previousOutput: LayoutProcessResultType): ChartExtend<AxisScale<AxisDomain>>;
  /**
   * get y scale
   *
   * @param {ChartDataSourceItem[]} data data source
   * @param {number[]} range svg scale range
   * @param {number} ticks the y-axis ticks
   * @returns {ScaleType}y scale
   */
  protected getScale(data: ChartDataSourceItem[] | ChartDataSourceItem[][], range: number[], ticks: number): ScaleType;
}
export {};
