import { DataStore } from "../store/index";
import type { ColumnProp, ColumnRegular, DimensionCols } from "../types/index";
import { ColumnCollection } from '../utils/column.utils';
export type ColumnDataSources = Record<DimensionCols, DataStore<ColumnRegular, DimensionCols>>;
export default class ColumnDataProvider {
    readonly dataSources: ColumnDataSources;
    collection: ColumnCollection | null;
    get stores(): ColumnDataSources;
    constructor();
    column(c: number, type?: DimensionCols): ColumnRegular | undefined;
    getColumn(virtualIndex: number, type: DimensionCols): ColumnRegular | undefined;
    getRawColumns(): Record<DimensionCols, ColumnRegular[]>;
    getColumns(type?: DimensionCols | 'all'): ColumnRegular[];
    getColumnIndexByProp(prop: ColumnProp, type: DimensionCols): number;
    getColumnByProp(prop: ColumnProp): ColumnRegular<ColumnProp>[] | undefined;
    refreshByType(type: DimensionCols): void;
    /**
     * Main method to set columns
     */
    setColumns(data: ColumnCollection): ColumnCollection;
    /**
     * Used in plugins
     * Modify columns in store
     */
    updateColumns(updatedColumns: ColumnRegular[]): void;
    updateColumn(column: ColumnRegular, index: number): void;
}
