import { PivotEngine } from './pivotEngine';
import type { AggregationType, AxisConfig, DataRecord, MeasureConfig, FieldType, FieldInfo, LayoutSelection } from '../types/interfaces';
export type { FieldType, FieldInfo };
/**
 * FieldService: Helper utilities to drive field selection and aggregations from UI.
 * - Discover fields and their inferred types from engine raw data
 * - Build Axis and Measure configs
 * - Update per-measure aggregation using engine APIs
 */
export declare class FieldService {
    /** Returns all fields inferred from the engine's raw data */
    static getAvailableFields<TRow extends DataRecord>(engine: PivotEngine<TRow>): FieldInfo[];
    /** Supported aggregations */
    static getSupportedAggregations(): AggregationType[];
    /** Change aggregation for a specific measure and refresh engine */
    static setMeasureAggregation<TRow extends DataRecord>(engine: PivotEngine<TRow>, field: string, aggregation: AggregationType): void;
    /** Build complete layout (rows, columns, measures) from selection */
    static buildLayout(selection: LayoutSelection): {
        rows: AxisConfig[];
        columns: AxisConfig[];
        measures: MeasureConfig[];
    };
    /** Build a single MeasureConfig */
    static buildMeasure(field: string, aggregation?: AggregationType): MeasureConfig;
    private static inferFieldType;
    private static looksLikeDate;
    private static toCaption;
    private static capitalize;
}
//# sourceMappingURL=fieldService.d.ts.map