import { AdaptableAgGrid } from './AdaptableAgGrid';
import { DefaultMenuItem, GetContextMenuItems, GetContextMenuItemsParams, GetMainMenuItems, GetMainMenuItemsParams, MenuItemDef } from 'ag-grid-enterprise';
import { AdaptableColumn } from '../AdaptableState/Common/AdaptableColumn';
import { AdaptableMenuItem } from '../AdaptableState/Common/Menu';
export declare class AgGridMenuAdapter {
    private _adaptableInstance;
    constructor(_adaptableInstance: AdaptableAgGrid);
    private get adaptableOptions();
    private get adaptableApi();
    destroy(): void;
    buildColumnMenu(params: GetMainMenuItemsParams, originalGetMainMenuItems: GetMainMenuItems): (DefaultMenuItem | MenuItemDef)[];
    buildContextMenu(params: GetContextMenuItemsParams, originalGetContextMenuItems: GetContextMenuItems): (DefaultMenuItem | MenuItemDef)[];
    private mapAgGridItemTypeToAgGridMenuItem;
    private removeConsecutiveSeparators;
    private createColumnMenuContextObject;
    private createAdaptableContextMenuItems;
    private createContextMenuContextObject;
    private mapAdaptableMenuItemToAgGridMenuDefinition;
    private mapCustomMenuItemToAgGridMenuDefinition;
    private mapUserMenuItemToAgGridMenuDefinition;
    private buildContextMenuDefaultStructure;
    /**
     * Hide menu group with no subitems or elevate single subitem to parent level
     */
    private normalizeMenuGroup;
    /**
     * Default strategy for menu items: return as is if there is only one item, otherwise group them under a parent item
     */
    private getModuleSpecificStructure;
    private getLayoutContextMenuStructure;
    private buildMenuGroupParent;
    private buildColumnMenuDefaultStructure;
    private getColumnFilterColumnMenuStructure;
    private getLayoutColumnMenuStructure;
    private getStyledColumnColumnMenuStructure;
    private mapAdaptableMenuItemToSystemMenuItems;
    private createAdaptableColumnMenuItems;
    private mapAdaptableIconToAgGridIcon;
    /**
     * The output of this function is used to build the column header menu if the AG Grid Menu Module is NOT present
     * This is controlled by the AdaptableAgGrid.embedColumnMenu property
     */
    buildStandaloneColumnHeader(adaptableColumn: AdaptableColumn): AdaptableMenuItem[];
}
