import { type IBackendCapabilities, type IExecutionFactory } from "@gooddata/sdk-backend-spi";
import { type IDimension, type IInsight, type IInsightDefinition, type ISettings } from "@gooddata/sdk-model";
import { type VisualizationEnvironment } from "@gooddata/sdk-ui";
import { type ColumnWidthItem, type IPivotTableConfig } from "@gooddata/sdk-ui-pivot";
import { type IBucketItem, type IBucketOfFun, type IDrillDownContext, type IExtendedReferencePoint, type IGdcConfig, type IReferencePoint, type IVisConstruct, type IVisProps, type IVisualizationProperties } from "../../../interfaces/Visualization.js";
import { AbstractPluggableVisualization } from "../AbstractPluggableVisualization.js";
export declare const getColumnAttributes: (buckets: IBucketOfFun[]) => IBucketItem[];
export declare const getRowAttributes: (buckets: IBucketOfFun[]) => IBucketItem[];
/**
 * PluggablePivotTable
 *
 * ## Buckets
 *
 * | Name     | Id         | Accepts             |
 * |----------|------------|---------------------|
 * | Measures | measures   | measures only       |
 * | Rows     | attributes | attributes or dates |
 * | Columns  | columns    | attributes or dates |
 *
 * ### Bucket axioms
 *
 * - |Measures| ≤ 20
 * - |Rows| ≤ 20
 * - |Columns| ≤ 20
 * - |Measures| + |Rows| + |Columns| ≥ 1
 *
 * ## Dimensions
 *
 * The PluggablePivotTable always creates two dimensional execution.
 *
 * - |Measures| ≥ 1 ⇒ [[...Rows], [...Columns, MeasureGroupIdentifier]]
 * - |Measures| = 0 ⇒ [[...Rows], [...Columns]]
 *
 * ## Sorts
 *
 * Unless the user specifies otherwise, the sorts used by default are:
 *
 * - |Rows| ≥ 1 ⇒ [attributeSort(Rows[0])]
 */
export declare class PluggablePivotTable extends AbstractPluggableVisualization {
    private environment;
    private renderFun;
    private unmountFun;
    private readonly settings;
    private backendCapabilities;
    constructor(props: IVisConstruct);
    unmount(): void;
    getExtendedReferencePoint(referencePoint: IReferencePoint, previousReferencePoint?: IReferencePoint): Promise<IExtendedReferencePoint>;
    getInsightWithDrillDownApplied(sourceVisualization: IInsight, drillDownContext: IDrillDownContext, backendSupportsElementUris: boolean): IInsight;
    getExecution(options: IVisProps, insight: IInsightDefinition, executionFactory: IExecutionFactory): import("@gooddata/sdk-backend-spi").IPreparedExecution;
    protected initializeProperties(visualizationProperties: IVisualizationProperties): void;
    private createCorePivotTableProps;
    protected updateInstanceProperties(options: IVisProps, insight: IInsightDefinition, insightPropertiesMeta: any): void;
    protected renderVisualization(options: IVisProps, insight: IInsightDefinition, executionFactory: IExecutionFactory): void;
    protected renderConfigurationPanel(insight: IInsightDefinition, options: IVisProps): void;
    protected getDimensions(insight: IInsightDefinition, customVisualizationConfig?: any): IDimension[];
    private adaptPropertiesToInsight;
    private sanitizeColumnWidths;
    private onColumnResized;
    private handlePushData;
}
/**
 * Given plug viz GDC config, current environment and platform settings, this creates pivot table config.
 *
 * @internal
 */
export declare function createPivotTableConfig(config: IGdcConfig, environment: VisualizationEnvironment, settings: ISettings, capabilities: IBackendCapabilities, columnWidths?: ColumnWidthItem[]): IPivotTableConfig;
//# sourceMappingURL=PluggablePivotTable.d.ts.map