import { IRowNode, RowClassParams } from 'ag-grid-enterprise';
import { AdaptableColumn } from '../../AdaptableState/Common/AdaptableColumn';
import { AdaptableMenuItem } from '../../AdaptableState/Common/Menu';
import { SpecialColumnSettings } from '../../AdaptableState/Common/SpecialColumnSettings';
import { GridCell } from '../../AdaptableState/Selection/GridCell';
import { SelectedCellInfo } from '../../AdaptableState/Selection/SelectedCellInfo';
import { SelectedRowInfo } from '../../AdaptableState/Selection/SelectedRowInfo';
import { InFilterValueResult } from '../../types';
import { ApiBase } from '../Implementation/ApiBase';
import { EditColumnValueInfo } from '../../AdaptableOptions/EditOptions';
export declare class GridInternalApi extends ApiBase {
    /**
     * Gets all distinct display values in the Column for given ColumnId
     * @param columnId Column to check
     */
    getDistinctDisplayValuesForColumnOld(columnId: string): any[];
    /**
     * Gets all distinct Filter values for the Column with the given ColumnId
     * used for Floating Filter and Column Header filter
     * either returns a list of values or al ist a list of values with count
     *
     * This is a general method, and it is used in:
     * - Column Filters
     * - Query Builder
     * - Permitted Values
     *
     * @param columnId Column to check
     */
    getDistinctFilterDisplayValuesForColumn(options: {
        columnId: string;
        currentSearchValue: string;
        previousResult: InFilterValueResult | undefined;
    }): Promise<InFilterValueResult>;
    getDistinctValuesForColumn(columnId: string): Promise<GridCell[]> | undefined;
    getDistinctEditDisplayValuesForColumn(options: {
        columnId: string;
        gridCell?: GridCell;
        currentSearchValue: string;
    }): Promise<EditColumnValueInfo[]> | undefined;
    /**
     * Gets all distinct raw values in Column. Values are sorted.
     * @param columnId Column to check
     */
    getDistinctRawValuesForColumn(columnId: string): any[];
    /**
     * Gets all distinct raw values in Column. Values are un-sorted.
     * @param columnId Column to check
     */
    getUnsortedDistinctRawValuesForColumn(columnId: string): any[];
    getSortedRowNodesWithCurrentLayoutSortOrder(rowNodes?: IRowNode[]): IRowNode[];
    sortDistinctValues<T extends GridCell>(returnValues: T[], column: AdaptableColumn): T[];
    setColumns(columns: AdaptableColumn[]): void;
    setSelectedCells(selectedCellInfo: SelectedCellInfo): void;
    setSelectedRows(selectedRowInfo: SelectedRowInfo): void;
    buildStandaloneColumnHeader(column: AdaptableColumn): AdaptableMenuItem[];
    getRowHighlightStyle(params: RowClassParams): {
        [cssProperty: string]: string;
    };
    getAlertRowStyle(params: RowClassParams): {
        [cssProperty: string]: string;
    };
    getAlertRowClass(params: RowClassParams): string | null;
    getRowHighlightClass(params: RowClassParams): string | null;
    deriveSpecialColumnSettingsFromAgGridDefaultColDef(): Partial<SpecialColumnSettings>;
    hasCellEditableAccordingToEditOptions(): boolean;
    /**
     * Returns UNDEFINED if no EditOptions.isCellEditable is provided, otherwise returns the result of the function
     *
     * DO NOT USE THIS METHOD DIRECTLY - use `GridApi.isCellEditable` instead
     */
    isCellEditableAccordingToEditOptions(gridCell: GridCell, defaultColDefinitionEditableValue: boolean): boolean | undefined;
    isRowFilterable(rowNode: IRowNode): boolean;
}
