import type { RowNode } from '../../types/row.types'; import type { ColumnDef } from '../../types/column.types'; import type { ChartData } from '../chart-data-transformer'; import type { ChartRenderOptions } from '../chart-renderer'; import type { ChartAggregation, ChartModel } from './chart-model'; /** Pixel size a chart is rendered at. */ export interface ChartSize { readonly width: number; readonly height: number; } /** * Translates a {@link ChartModel} plus the current grid rows/columns into the * `ChartData` the {@link ChartRenderer} consumes. * * Bridges the model's column-id roles (category / series) and aggregation to the * existing {@link ChartDataTransformer}, then applies the model's * `switchCategorySeries` transpose. When aggregation is `'none'` each data row * becomes its own category (no grouping), matching AG Grid's Aggregate-off mode. * * @param model - The chart definition. * @param rows - Current grid rows (data rows are filtered internally). * @param columns - Column definitions used to resolve ids to field paths. * @returns Labels + datasets ready to render. */ export declare function buildChartData(model: ChartModel, rows: RowNode[], columns: ColumnDef[]): ChartData; /** * Maps a {@link ChartModel}'s presentation sections onto {@link ChartRenderOptions}. * Empty strings are passed through deliberately — the renderer treats them as * "resolve from the active theme token". * * @param model - The chart definition. * @param size - The pixel size to render at. * @returns Fully-specified render options. */ export declare function toRenderOptions(model: ChartModel, size: ChartSize): ChartRenderOptions; /** Aggregation strategies the model exposes to the Set Up tab, in display order. */ export declare const AGGREGATION_OPTIONS: readonly ChartAggregation[]; //# sourceMappingURL=chart-model-mapper.d.ts.map