import { Attribute, Data, Filter, Measure } from '@sisense/sdk-data';
import { ChartType } from '../../../../../types';
import { DataTable } from '../../chart-data-processor/table-processor';
import { ChartDataOptions, ChartDataOptionsInternal } from '../types';
export type DataColumnNamesMapping = Record<string, string>;
/**
 * Generates and applies unique data column names and creates a mapping of new names to original names.
 *
 * @param measures - An array of Value objects representing measures.
 * @returns - The mapping of unique names to original names.
 */
export declare const generateUniqueDataColumnsNames: (measures: Measure[]) => DataColumnNamesMapping;
/**
 * Pure variant of {@link generateUniqueDataColumnsNames}: returns a fresh array of
 * measure clones whose `name` is the unique alias, alongside the mapping. The
 * input measures are not mutated.
 */
export declare const applyUniqueDataColumnsNames: (measures: Measure[]) => {
    measures: Measure[];
    mapping: DataColumnNamesMapping;
};
/**
 * Applies default chart data options based on input chart type.
 */
export declare const applyDefaultChartDataOptions: (chartDataOptions: ChartDataOptionsInternal, chartType: ChartType) => ChartDataOptionsInternal;
/**
 * Validates attributes, measures, filters, and highlights against the columns in data.
 */
export declare const validateDataOptionsAgainstData: (data: Data | DataTable, attributes: Attribute[], measures: Measure[], dataColumnNamesMapping: DataColumnNamesMapping, filters?: Filter[], highlights?: Filter[]) => boolean;
export declare function validateDataOptions(chartType: ChartType, dataOptions: ChartDataOptions): ChartDataOptions;
