/// <reference types="react" />
import { ApiBase } from '../Implementation/ApiBase';
import { UIConfirmation } from '../../Utilities/Interface/MessagePopups';
import { SystemState } from '../../PredefinedConfig/SystemState';
import { Action } from 'redux';
import { ModuleParams } from '../../View/Components/SharedProps/ModuleViewPopupProps';
import { AdaptableMenuItem } from '../../PredefinedConfig/Common/Menu';
import { AdaptableModule } from '../../PredefinedConfig/Common/Types';
import { CellDataChangedInfo } from '../../PredefinedConfig/Common/CellDataChangedInfo';
import { ActionColumn, ActionColumnContext, AdaptableIcon, AdaptableObjectLookupCriteria, AdaptableQuery, AdaptableState, BaseContext } from '../../types';
import { IValidationService } from '../../Utilities/Services/Interface/IValidationService';
import { IModuleService } from '../../Utilities/Services/Interface/IModuleService';
import { ICalculatedColumnExpressionService } from '../../Utilities/Services/Interface/ICalculatedColumnExpressionService';
import { IAdaptable } from '../../AdaptableInterfaces/IAdaptable';
import { IDataService } from '../../Utilities/Services/Interface/IDataService';
import { IQueryLanguageService } from '../../Utilities/Services/Interface/IQueryLanguageService';
import { IAlertService } from '../../Utilities/Services/Interface/IAlertService';
import { ColDef, IRowNode } from '@ag-grid-community/core';
import { ITeamSharingService } from '../../Utilities/Services/Interface/ITeamSharingService';
import { ButtonStyle } from '../../PredefinedConfig/Common/ButtonStyle';
import { AdaptableButton } from '../../PredefinedConfig/Common/AdaptableButton';
import { AdaptableFrameworkComponent } from '../../AdaptableOptions/AdaptableFrameworkComponent';
import { IMetamodelService } from '../../Utilities/Services/Interface/IMetamodelService';
import { IModuleCollection } from '../../Strategy/Interface/IModule';
import { AdaptableObjectTag, AdaptableObjectWithScope } from '../../PredefinedConfig/Common/AdaptableObject';
import { Fdc3Service } from '../../Utilities/Services/Fdc3Service';
import { CellPopupService } from '../../Utilities/Services/CellPopupService';
import { RowEditService } from '../../Utilities/Services/RowEditService';
import { FlashingCellService } from '../../Utilities/Services/FlashingCellService';
import { AgGridAdapter } from '../../agGrid/AgGridAdapter';
export declare class AdaptableInternalApi extends ApiBase {
    getSystemState(): SystemState;
    getAdaptableJSXElement(): JSX.Element;
    showPopupConfirmation(confirmation: UIConfirmation): void;
    showPopupScreen(module: AdaptableModule, componentName: string, popupParams?: ModuleParams, popupProps?: {
        [key: string]: any;
    }): void;
    showPopupWindow({ id, title, icon, popupProps, factoryId, }: {
        id: string;
        title: string;
        icon?: string;
        popupProps: any;
        factoryId: string;
    }): void;
    hidePopupScreen(): void;
    setSettingsPanelItems(menuItems: AdaptableMenuItem[]): void;
    setMenuModuleItems(menuItems: AdaptableMenuItem[]): void;
    setPivotModeOn(): void;
    setPivotModeOff(): void;
    isGridInPivotMode(): boolean;
    setTreeMode(mode: boolean): void;
    isGridInTreeMode(): boolean;
    getToolbarTitle(): string;
    buildDataChangedInfo(config: Pick<CellDataChangedInfo, 'newValue' | 'oldValue' | 'column' | 'primaryKeyValue' | 'rowNode' | 'trigger'>): CellDataChangedInfo;
    getAdaptableInstance(): IAdaptable;
    getAgGridAdapter(): AgGridAdapter;
    getPredefinedConfig(): any;
    getState(): AdaptableState;
    getValidationService(): IValidationService;
    getModuleService(): IModuleService;
    getDataService(): IDataService;
    getCellPopupService(): CellPopupService;
    getCalculatedColumnExpressionService(): ICalculatedColumnExpressionService;
    getQueryLanguageService(): IQueryLanguageService;
    getAlertService(): IAlertService;
    getTeamSharingService(): ITeamSharingService;
    getMetamodelService(): IMetamodelService;
    getRowEditService(): RowEditService;
    getFdc3Service(): Fdc3Service;
    getFlashingCellService(): FlashingCellService;
    getModules(): IModuleCollection;
    getModuleFriendlyName(adaptableModule: AdaptableModule): string;
    forAllRowNodesDo(func: (rowNode: IRowNode) => void, config?: {
        includeGroupRows?: boolean;
        filterFn?: (rowNode: IRowNode) => boolean;
    }): void;
    forAllVisibleRowNodesDo(func: (rowNode: IRowNode, index: number) => void, config?: {
        includeGroupRows?: boolean;
        filterFn?: (rowNode: IRowNode) => boolean;
    }): void;
    getLabelForButton(button: AdaptableButton<BaseContext>, context: BaseContext): string | undefined;
    getTooltipForButton(button: AdaptableButton<BaseContext>, context: BaseContext): string | undefined;
    getStyleForButton(button: AdaptableButton<BaseContext>, context: BaseContext): ButtonStyle | undefined;
    getIconForButton(button: AdaptableButton<BaseContext>, context: BaseContext, defaultWidthHeight?: {
        height: number | string;
        width: number | string;
    }): AdaptableIcon | undefined;
    isDocumentationLinksDisplayed(): boolean;
    getQueryPreviewData(): any;
    createFrameworkComponent(containerDomNode: HTMLElement, frameworkComponent: AdaptableFrameworkComponent, componentType: 'toolPanel' | 'toolbar'): void;
    destroyFrameworkComponent(containerDomNode: HTMLElement, frameworkComponent: AdaptableFrameworkComponent, componentType: 'toolPanel' | 'toolbar'): void;
    initializeDataChangeHistory(): void;
    executeWithProgressIndicator(label: string, executeFn: () => void, errorHandlingFn?: () => void): void;
    getCorrectEnglishVariant(wordToSpell: string): string;
    shouldDisplayTagSections(): boolean;
    getAvailableTags(): AdaptableObjectTag[] | undefined;
    private getObjectTags;
    private getLayoutTags;
    dispatchReduxAction(action: Action): void;
    showSettingsPanel(module: AdaptableModule, moduleParams?: ModuleParams): void;
    getLabelForTag(adaptableObjectTag: AdaptableObjectTag): string;
    getValueForTag(adaptableObjectTag: AdaptableObjectTag): string | number;
    getAdaptableQueryExpressionText(query: Partial<AdaptableQuery>): string;
    deleteConditionalStyles(conditionalStyles: any[]): void;
    persistPreviousGroupedColumnsIndex(layoutId: string, columnId: string, columnIndex: number): void;
    getPreviousGroupedColumnsIndex(layoutId: string): {
        [key: string]: number;
    };
    /**
     * Gets a value from a rowData object using a field name.
     * Supports deep values (e.g. fieldName = 'address.street')
     */
    getValueUsingField(rowData: Record<string, any>, fieldName: string): any;
    /**
     * Sets a value in a rowData object using a field name.
     * Supports deep values (e.g. fieldName = 'address.street')
     */
    setValueUsingField(rowData: Record<string, any>, fieldName: string, newValue: any): Record<string, any>;
    findAdaptableObjectsByLookupCriteria<T extends AdaptableObjectWithScope>({ scope, tag, ids }: AdaptableObjectLookupCriteria, specificAdaptableObjects: T[]): T[];
    buildBaseContext(): BaseContext;
    getActionButtonsAndActionColumn(colDef: ColDef): {
        actionButtons: AdaptableButton<ActionColumnContext>[];
        actionColumn: ActionColumn | undefined;
    };
}
