import { type DataViewFacade } from "@gooddata/sdk-ui"; import { type IUnwrappedAttributeHeadersWithItems } from "../../typings/mess.js"; import { type ISeriesItem } from "../../typings/unsafe.js"; /** * Stacked Mekko executes with [[stackBy], [viewBy, MeasureGroup]], so the view-by header items * enumerate view × measure combinations. Downstream consumers (categories, point names, drills) * index them by column, so collapse to one item per view value. No-op without a measure group * in the view-by dimension or with fewer than two measures. * * The `index % measureCount` stride holds only because MeasureGroup is the last header in its * dimension (the invariant `findMeasureGroupInDimensions` enforces). */ export declare function collapseMekkoViewByItems(dv: DataViewFacade, viewByAttribute: IUnwrappedAttributeHeadersWithItems | undefined | null): IUnwrappedAttributeHeadersWithItems | undefined | null; /** * Mekko can't stack to 100% with negative Height values (percent of mixed-sign segments is * undefined) — it falls back to absolute stacking. Evaluated once in getChartOptions and exposed * as chartOptions.stackToPercentBlockedByNegativeValues; downstream consumers (stacking config, * ChartTransformation) read that flag rather than re-deriving it. */ export declare function isMekkoPercentBlockedByNegatives(type: string | undefined, series: ISeriesItem[] | undefined): boolean; /** * Drops Mekko columns whose Width (point.z) is 0 — from every series' data and the categories in * lockstep. Negative z is kept so validateData can reject it. The first series drives the mask (all * series share the same z per column); inputs are returned unchanged when nothing is dropped. */ export declare function dropZeroWidthMekkoColumns(series: ISeriesItem[], categories: TCategory[]): { series: ISeriesItem[]; categories: TCategory[]; }; //# sourceMappingURL=mekkoChartOptions.d.ts.map