import { ColDef, ColGroupDef, Column, GridApi, GridOptions, IRowNode, ManagedGridOptionKey, ManagedGridOptions, Module, ModuleNames } from '@ag-grid-community/core';
import { AdaptableAgGrid } from './AdaptableAgGrid';
import { AdaptableColumn, AdaptableColumnGroup } from '../PredefinedConfig/Common/AdaptableColumn';
import { SelectedCellInfo } from '../PredefinedConfig/Selection/SelectedCellInfo';
import { SelectedRowInfo } from '../PredefinedConfig/Selection/SelectedRowInfo';
export declare class AgGridAdapter {
    private adaptableInstance;
    private DANGER_USE_GETTER_gridApi;
    private DANGER_gridApi_from_args;
    initialGridOptions: GridOptions;
    constructor(adaptableInstance: AdaptableAgGrid);
    private get adaptableOptions();
    private get adaptableApi();
    private get logger();
    destroy(): void;
    setAgGridApi(gridApi: GridApi): void;
    getAgGridApi(skipLogging?: boolean): GridApi | undefined;
    /**
     * When AG Grid is rendered the first time, the AG GridApi is not yet set in the Adaptable context (as it's set only AFTER the grid is fully initialised)
     * yet we need it when evaluating custom GridOptions properties on the first render.
     * to handle this edge case, we try to extract the AG GridApi from the invocation arguments
     */
    grabAgGridApiOnTheFly(args: unknown): void;
    updateGridOptions(options: ManagedGridOptions): void;
    getGridOption<Key extends keyof GridOptions>(key: Key): GridOptions[Key];
    setGridOption<Key extends ManagedGridOptionKey>(key: Key, value: GridOptions[Key]): void;
    getUserGridOptionsProperty<T extends keyof GridOptions>(propertyName: T): GridOptions[T];
    updateColumnFilterActiveState(): void;
    deriveSelectedCellInfoFromAgGrid(): SelectedCellInfo;
    deriveSelectedRowInfoFromAgGrid(): SelectedRowInfo;
    isModulePresent(moduleName: ModuleNames): boolean;
    getRegisteredModuleNames(): string[];
    getRegisteredModules(): Module[];
    isPinnedRowNode(rowNode: IRowNode): boolean;
    getFirstGroupedColumn(): string | undefined;
    createAdaptableColumnFromAgGridColumn(agGridColumn: Column, colsToGroups: Record<string, AdaptableColumnGroup>): AdaptableColumn;
    private getColumnDataType;
    private getAbColDefValue;
    private isColumnReadonly;
    private isColumnFieldonly;
    private isColumnSortable;
    private isColumnRowGroupable;
    private isColumnPivotable;
    private isColumnAggregetable;
    private getColumnAggregationFunctions;
    private isColumnMoveable;
    private isColumnQueryable;
    private isColumnExportable;
    private isColumnHideable;
    private isColumnFilterable;
    private getColumnTypes;
    private getColumnPinnedPosition;
    private isColumnFixed;
    private isColumnRowGrouped;
    private isColumnSparkline;
    isVisibleNode(rowNode: IRowNode): boolean;
    getFlattenedColDefs(colDefs?: (ColDef | ColGroupDef)[]): ColDef[];
    /**
     * Mutates the colDefs to ensure that each column has a colId
     */
    assignColumnIdsToColDefs(colDefs?: (ColDef | ColGroupDef)[]): void;
    patchColDefs(colDefs: (ColDef | ColGroupDef)[], patchFn: (colDef: ColDef) => void): void;
    traverseColDefs(colDefs: (ColDef | ColGroupDef)[], modifyFn: (colDef: ColDef) => ColDef | null): (ColDef | ColGroupDef)[];
    getDefaultColumnDefinition(): GridOptions['defaultColDef'];
    _agGridApi_getValue(colKey: string | Column, rowNode: IRowNode, gridApi?: GridApi): any;
}
export declare const _agGridApi_getValue: (colKey: string | Column, rowNode: IRowNode, gridApi: GridApi) => any;
