import { DataType, TypedValue } from './DataPrimitive';
import { IDimension } from './Dimensions';
import { DataFrame } from './DataFrame';
import { DataSeries } from './DataSeries';
import { DataSeriesLite } from './DataSeriesLite';
import { DataPoint } from './DataPoint';
export interface DataPrimitiveFormatter<IN extends DataType, OUT extends DataType> {
    format(dataPrimitive: IDimension<IN>): IDimension<OUT> | Record<string, unknown>;
}
export declare abstract class AbstractFormatter<IN extends DataType = DataType, OUT extends DataType = DataType> implements DataPrimitiveFormatter<IN, OUT> {
    format(p: DataPoint<IN>): DataPoint<OUT>;
    format(s: DataSeries<IN> | DataSeriesLite<IN>): DataSeries<OUT>;
    format(f: DataFrame<IN>): DataFrame<OUT>;
    protected formatSeries(s: DataSeries<IN> | DataSeriesLite<IN>, i?: number): DataSeries<OUT>;
    protected formatPoint(p: DataPoint<IN>, s?: DataSeries<IN> | DataSeriesLite<IN>, i?: number, j?: number): DataPoint<OUT>;
    protected abstract formatTypedValue(p: DataPoint<IN>, s?: DataSeries<IN> | DataSeriesLite<IN>, i?: number, j?: number): TypedValue<OUT>;
    protected makeArrays2D(a: any): any[][];
}
