import { BaseChart } from './base-chart';
import { BaseDrawer } from './drawers/base-drawer';
import { BaseRenderer } from './renderers/base-renderer';
import { ChartDataSourceItem, directionType } from '../../types/vega-chart';
import { BaseInteractor } from './interactors/base-interactor';
export declare type BarChartDataType = {
  /**
   *  Indicates the chart's data source.
   */
  dataSource: ChartDataSourceItem[];
  /**
   * Determines the direction of the bar chart.
   */
  direction?: directionType;
};
/**
 * The BarChart class is a TypeScript implementation of a bar chart that extends the BaseChart class
 * and includes methods for creating a drawer chain
 */
export declare class BarChart extends BaseChart<BarChartDataType> {
  private readonly layoutInputProcessor;
  private readonly xAxisInputProcessorChain;
  private readonly horizontalXAxisInputProcessorChain;
  private readonly yAxisInputProcessorChain;
  private readonly horizontalYAxisInputProcessorChain;
  private readonly legendInputProcessorChain;
  /**
   * This function creates an array of BaseDrawer objects for rendering a chart with axes, legends, and paths.
   *
   * @param {BaseRenderer<SVGElement | HTMLCanvasElement>} renderer - an instance of a BaseRenderer class that can render SVG or Canvas elements.
   * @param {BaseInteractor<SVGElement | HTMLCanvasElement>} interactor - an instance of a BaseInteractor class
   * @returns {BaseDrawer<unknown>[]} An array of BaseDrawer array.
   */
  createDrawerChain(renderer: BaseRenderer<SVGElement | HTMLCanvasElement>, interactor: BaseInteractor<SVGElement | HTMLCanvasElement>): BaseDrawer<unknown>[];
}
