import { Execution } from "@gooddata/typings";
import { ColDef, Column } from "ag-grid-community";
import { ColumnWidthItem, ColumnWidth, IManuallyResizedColumnsItem, IWeakMeasureColumnWidthItem } from "../../../interfaces/PivotTable";
export interface IResizedColumnsCollection {
    [columnIdentifier: string]: IResizedColumnsCollectionItem;
}
export interface IResizedColumnsCollectionItem {
    width: ColumnWidth;
    measureIdentifier?: string;
}
export declare function isColumnWidthAuto(columnWidth: ColumnWidth): boolean;
export interface IWeakMeasureColumnWidthItemsMap {
    [measureIdentifier: string]: IWeakMeasureColumnWidthItem;
}
export declare class ResizedColumnsStore {
    private manuallyResizedColumns;
    private allMeasureColumnWidth;
    private weakMeasuresColumnWidths;
    constructor(manuallyResizedColumns?: IResizedColumnsCollection, allMeasureColumnWidth?: number | null, weakMeasuresColumnWidths?: IWeakMeasureColumnWidthItemsMap);
    getManuallyResizedColumn(item: Column | ColDef): IManuallyResizedColumnsItem;
    isColumnManuallyResized(item: Column | ColDef): boolean;
    addToManuallyResizedColumn(column: Column, allowGrowToFit?: boolean): void;
    addAllMeasureColumn(columnWidth: number, allColumns: Column[]): void;
    addWeekMeasureColumn(column: Column): void;
    removeAllMeasureColumns(): void;
    removeWeakMeasureColumn(column: Column): void;
    removeFromManuallyResizedColumn(column: Column): void;
    getColumnWidthsFromMap(execution: Execution.IExecutionResponses): ColumnWidthItem[];
    updateColumnWidths(columnWidths: ColumnWidthItem[], executionResponse: Execution.IExecutionResponse): void;
    getMatchingColumnsByMeasure(targetColumn: Column, allColumns: Column[]): Column[];
    getMatchedWeakMeasuresColumnWidth(item: Column | ColDef): IWeakMeasureColumnWidthItem;
    private filterAllMeasureColumnWidthItem;
    private filterStrongColumnWidthItems;
    private filterWeakColumnWidthItems;
    private convertItem;
    private getWeakMeasureColumMapItem;
    private isAllMeasureColumWidthUsed;
    private getAutoSizeItem;
    private getAllMeasureColumMapItem;
    private getAllMeasureColumnWidth;
    private isMatchingWeakWidth;
}
