import type { AgColumn, BeanCollection, ColumnEventType, ColumnState, IAggFunc, IColumnStateUpdateStrategy, SortDef } from 'ag-grid-community';
import { BeanStub } from 'ag-grid-community';
import type { ColumnStateConcreteUpdateStrategy } from './columnStateUpdateTypes';
type StrategyBeans = BeanCollection;
export declare class ColumnStateUpdateExecutionStrategy extends BeanStub implements IColumnStateUpdateStrategy {
    beanName: "columnStateUpdateExecutionStrategy";
    private syncUpdateStrategy?;
    private deferredUpdateStrategy?;
    applyColumnState(deferMode: boolean, state: ColumnState[], eventType: ColumnEventType): void;
    commit(deferMode: boolean): void;
    hasPendingChanges(deferMode: boolean): boolean;
    moveColumns(deferMode: boolean, columns: AgColumn[], targetIndex: number, eventType: ColumnEventType): void;
    reset(deferMode: boolean): void;
    setColumnsVisible(deferMode: boolean, columns: AgColumn[], visible: boolean, eventType: ColumnEventType): void;
    isColumnVisibleInToolPanel(deferMode: boolean, column: AgColumn): boolean;
    setRowGroupColumns(deferMode: boolean, columns: AgColumn[], eventType: ColumnEventType): void;
    getRowGroupColumns(deferMode: boolean): AgColumn[];
    getPrimaryColumns(deferMode: boolean): AgColumn[];
    hasDeferredColumnOrder(deferMode: boolean): boolean;
    setValueColumns(deferMode: boolean, columns: AgColumn[], eventType: ColumnEventType): void;
    getValueColumns(deferMode: boolean): AgColumn[];
    setColumnAggFunc(deferMode: boolean, column: AgColumn, aggFunc: string | IAggFunc | null | undefined, eventType: ColumnEventType): void;
    getColumnAggFunc(deferMode: boolean, column: AgColumn): string | IAggFunc | null | undefined;
    setPivotColumns(deferMode: boolean, columns: AgColumn[], eventType: ColumnEventType): void;
    getPivotColumns(deferMode: boolean): AgColumn[];
    setPivotMode(deferMode: boolean, pivotMode: boolean, eventType: ColumnEventType): void;
    getPivotMode(deferMode: boolean): boolean;
    isColumnSelectedInPivotModeToolPanel(deferMode: boolean, column: AgColumn): boolean;
    progressSortFromEvent(deferMode: boolean, column: AgColumn, event: MouseEvent | KeyboardEvent): void;
    getSortDef(deferMode: boolean, column: AgColumn): SortDef | null;
    private getUpdateStrategy;
    private getSyncUpdateStrategy;
    private getDeferredUpdateStrategy;
}
export declare class SynchronousColumnStateUpdateStrategy implements ColumnStateConcreteUpdateStrategy {
    private readonly beans;
    private lastPivotColIds;
    constructor(beans: StrategyBeans);
    reset: () => void;
    commit: () => void;
    hasPendingChanges: () => boolean;
    hasDeferredColumnOrder: () => boolean;
    applyColumnState(state: ColumnState[], eventType: ColumnEventType): void;
    moveColumns(columns: AgColumn[], targetIndex: number, eventType: ColumnEventType): void;
    setColumnsVisible(columns: AgColumn[], visible: boolean, eventType: ColumnEventType): void;
    setRowGroupColumns(columns: AgColumn[], eventType: ColumnEventType): void;
    getRowGroupColumns(): AgColumn[];
    getPrimaryColumns(): AgColumn[];
    setValueColumns(columns: AgColumn[], eventType: ColumnEventType): void;
    getValueColumns(): AgColumn[];
    setColumnAggFunc(column: AgColumn, aggFunc: string | IAggFunc | null | undefined, eventType: ColumnEventType): void;
    getColumnAggFunc(column: AgColumn): string | IAggFunc | null | undefined;
    setPivotColumns(columns: AgColumn[], eventType: ColumnEventType): void;
    getPivotColumns(): AgColumn[];
    setPivotMode(pivotMode: boolean, eventType: ColumnEventType): void;
    progressSortFromEvent(column: AgColumn, event: MouseEvent | KeyboardEvent): void;
    isColumnVisibleInToolPanel(column: AgColumn): boolean;
    isColumnSelectedInPivotModeToolPanel(column: AgColumn): boolean;
    getPivotMode(): boolean;
    getSortDef(column: AgColumn): SortDef | null;
}
export {};
