import type { RemappingHydratedDatasetColumn } from "../../../visualizations/types";
import type { DatasetColumn, DatasetData, VisualizationSettings } from "../../../../metabase-types/api";
export type ColumnDescriptor = {
    index: number;
    column: RemappingHydratedDatasetColumn;
};
export declare const getColumnDescriptors: <TColumn extends DatasetColumn>(columnNames: string[], columns: TColumn[]) => ColumnDescriptor[];
export declare const hasValidColumnsSelected: (visualizationSettings: VisualizationSettings, data: DatasetData) => boolean;
export type BreakoutChartColumns = {
    dimension: ColumnDescriptor;
    breakout: ColumnDescriptor;
    metric: ColumnDescriptor;
};
export type MultipleMetricsChartColumns = {
    dimension: ColumnDescriptor;
    metrics: ColumnDescriptor[];
};
export type ScatterPlotColumns = (BreakoutChartColumns | MultipleMetricsChartColumns) & {
    bubbleSize?: ColumnDescriptor;
};
export type CartesianChartColumns = BreakoutChartColumns | MultipleMetricsChartColumns | ScatterPlotColumns;
export declare function assertMultiMetricColumns(chartColumns: CartesianChartColumns): MultipleMetricsChartColumns;
export declare const getCartesianChartColumns: (columns: RemappingHydratedDatasetColumn[], settings: Pick<VisualizationSettings, "graph.dimensions" | "graph.metrics" | "scatter.bubble">) => CartesianChartColumns;
