/**
 * Copyright (c) 2020-present, Goldman Sachs
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
/***************************************************************************************
 * [GRID]
 *
 * These are utilities used to build the configuration for the grid client,
 * AG Grid, from the snapshot.
 ***************************************************************************************/
import { type DataCubeSnapshot } from '../../core/DataCubeSnapshot.js';
import type { ColGroupDef, GridOptions } from 'ag-grid-community';
import { DataCubeGridClientSortDirection, DataCubeGridClientPinnedAlignement } from './DataCubeGridClientEngine.js';
import { type DataCubeConfiguration } from '../../core/model/DataCubeConfiguration.js';
import type { DataCubeViewState } from '../DataCubeViewState.js';
export declare function generateBaseGridOptions(view: DataCubeViewState): GridOptions;
export declare function generateDimensionalBaseGridOptions(view: DataCubeViewState): GridOptions;
export declare function generateColumnDefs(snapshot: DataCubeSnapshot, configuration: DataCubeConfiguration): (ColGroupDef<any> | {
    enableRowGroup: boolean;
    rowGroup: boolean;
    rowGroupIndex: number | null;
    enablePivot: boolean;
    pivot: boolean;
    pivotIndex: number | null;
    aggFunc: string | null;
    enableValue: false;
    allowedAggFuncs: never[];
    sortable: true;
    sort: DataCubeGridClientSortDirection | null;
    sortIndex: number | null;
    colId: string;
    field: string;
    type?: string | string[];
    cellDataType: boolean | string;
    valueGetter?: string | import("ag-grid-community").ValueGetterFunc<any, any>;
    valueFormatter: string | ((params: import("ag-grid-community").ValueFormatterParams<any, any>) => any);
    refData?: {
        [key: string]: string;
    };
    keyCreator?: (params: import("ag-grid-community").KeyCreatorParams<any, any>) => string;
    equals?: (valueA: any, valueB: any) => boolean;
    tooltipField?: string;
    tooltipValueGetter: (params: import("ag-grid-community").ITooltipParams<any, any, any>) => string | any;
    checkboxSelection?: boolean | import("ag-grid-community").CheckboxSelectionCallback<any, any>;
    showDisabledCheckboxes?: boolean;
    icons?: {
        [key: string]: ((...args: any[]) => any) | string;
    };
    suppressNavigable?: boolean | import("ag-grid-community").SuppressNavigableCallback<any, any>;
    suppressKeyboardEvent?: (params: import("ag-grid-community").SuppressKeyboardEventParams<any, any>) => boolean;
    suppressPaste?: boolean | import("ag-grid-community").SuppressPasteCallback<any, any>;
    suppressFillHandle?: boolean;
    hide: boolean;
    initialHide?: boolean;
    lockVisible: boolean;
    lockPosition?: boolean | "left" | "right";
    suppressMovable?: boolean;
    useValueFormatterForExport?: boolean;
    editable?: boolean | import("ag-grid-community").EditableCallback<any, any>;
    valueSetter?: string | import("ag-grid-community").ValueSetterFunc<any, any>;
    valueParser?: string | import("ag-grid-community").ValueParserFunc<any, any>;
    cellEditor?: any;
    cellEditorParams?: any;
    cellEditorSelector?: import("ag-grid-community").CellEditorSelectorFunc<any, any>;
    singleClickEdit?: boolean;
    cellEditorPopup?: boolean;
    cellEditorPopupPosition?: "over" | "under";
    useValueParserForImport?: boolean;
    onCellValueChanged?: (event: import("ag-grid-community").NewValueParams<any, any>) => void;
    onCellClicked?: (event: import("ag-grid-community").CellClickedEvent<any, any>) => void;
    onCellDoubleClicked?: (event: import("ag-grid-community").CellDoubleClickedEvent<any, any>) => void;
    onCellContextMenu?: (event: import("ag-grid-community").CellContextMenuEvent<any, any>) => void;
    getQuickFilterText?: (params: import("ag-grid-community").GetQuickFilterTextParams<any, any>) => string;
    filterValueGetter?: string | import("ag-grid-community").ValueGetterFunc<any, any>;
    floatingFilter?: boolean;
    suppressFloatingFilterButton?: boolean;
    headerComponent?: any;
    headerComponentParams?: any;
    menuTabs: import("ag-grid-community").ColumnMenuTab[];
    columnChooserParams?: import("ag-grid-community").ColumnChooserParams;
    suppressHeaderMenuButton?: boolean;
    suppressHeaderFilterButton?: boolean;
    mainMenuItems?: (import("ag-grid-community").DefaultMenuItem | import("ag-grid-community").MenuItemDef<any, any>)[] | import("ag-grid-community").GetMainMenuItems<any, any>;
    contextMenuItems?: import("ag-grid-community").GetContextMenuItems<any, any> | (import("ag-grid-community").DefaultMenuItem | import("ag-grid-community").MenuItemDef<any, any>)[];
    headerCheckboxSelection?: boolean | import("ag-grid-community").HeaderCheckboxSelectionCallback<any, any>;
    headerCheckboxSelectionFilteredOnly?: boolean;
    headerCheckboxSelectionCurrentPageOnly?: boolean;
    chartDataType?: "category" | "series" | "time" | "excluded";
    pinned: boolean | "left" | "right" | DataCubeGridClientPinnedAlignement | null;
    initialPinned?: boolean | "left" | "right";
    lockPinned?: boolean;
    initialPivot?: boolean;
    initialPivotIndex?: number;
    pivotComparator?: (valueA: string, valueB: string) => number;
    cellStyle?: import("ag-grid-community").CellStyle | import("ag-grid-community").CellStyleFunc<any, any>;
    cellClass?: string | string[] | import("ag-grid-community").CellClassFunc<any, any>;
    cellClassRules: import("ag-grid-community").CellClassRules<any, any>;
    cellRenderer: any;
    cellRendererParams?: any;
    cellRendererSelector?: import("ag-grid-community").CellRendererSelectorFunc<any, any>;
    loadingCellRenderer?: any;
    loadingCellRendererParams?: any;
    loadingCellRendererSelector?: import("ag-grid-community").CellRendererSelectorFunc<any, any>;
    autoHeight?: boolean;
    wrapText?: boolean;
    enableCellChangeFlash?: boolean;
    rowDrag?: boolean | import("ag-grid-community").RowDragCallback<any, any>;
    rowDragText?: (params: import("ag-grid-community").IRowDragItem, dragItemCount: number) => string;
    dndSource?: boolean | import("ag-grid-community").DndSourceCallback<any, any>;
    dndSourceOnRowDrag?: (params: import("ag-grid-community").DndSourceOnRowDragParams<any>) => void;
    initialRowGroup?: boolean;
    initialRowGroupIndex?: number;
    initialAggFunc?: string | import("ag-grid-community").IAggFunc<any, any>;
    defaultAggFunc?: string;
    showRowGroup?: string | boolean;
    initialSort?: import("ag-grid-community").SortDirection;
    initialSortIndex?: number;
    sortingOrder?: import("ag-grid-community").SortDirection[];
    comparator?: (valueA: any, valueB: any, nodeA: import("ag-grid-community").IRowNode<any>, nodeB: import("ag-grid-community").IRowNode<any>, isDescending: boolean) => number;
    unSortIcon?: boolean;
    colSpan?: (params: import("ag-grid-community").ColSpanParams<any, any>) => number;
    rowSpan?: (params: import("ag-grid-community").RowSpanParams<any, any>) => number;
    spanRows?: boolean | ((params: import("ag-grid-community").SpanRowsParams<any, any>) => boolean);
    width?: number;
    initialWidth?: number;
    minWidth?: number;
    maxWidth?: number;
    flex?: number;
    initialFlex?: number;
    resizable?: boolean;
    suppressSizeToFit?: boolean;
    suppressAutoSize?: boolean;
    pivotValueColumn?: import("ag-grid-community").Column | null;
    pivotTotalColumnIds?: string[];
    suppressSpanHeaderHeight: boolean;
    headerName: string;
    headerValueGetter?: string | import("ag-grid-community").HeaderValueGetterFunc<any, any>;
    headerTooltip: string;
    headerStyle?: import("ag-grid-community").HeaderStyle | import("ag-grid-community").HeaderStyleFunc<any, any>;
    headerClass: import("ag-grid-community").HeaderClass<any, any>;
    suppressHeaderKeyboardEvent?: (params: import("ag-grid-community").SuppressHeaderKeyboardEventParams<any, any>) => boolean;
    columnGroupShow?: import("ag-grid-community").ColumnGroupShowType;
    toolPanelClass?: import("ag-grid-community").ToolPanelClass<any, any>;
    suppressColumnsToolPanel?: boolean;
    suppressFiltersToolPanel?: boolean;
    tooltipComponent?: any;
    tooltipComponentParams?: any;
    pivotKeys?: string[];
    cellAriaRole?: string;
    context?: any;
    wrapHeaderText?: boolean;
    autoHeaderHeight?: boolean;
    suppressHeaderContextMenu?: boolean;
    filter?: any;
    filterParams?: any;
    floatingFilterComponent?: any;
    floatingFilterComponentParams?: any;
} | {
    colId: string;
    hide: true;
    enableValue: false;
    allowedAggFuncs: never[];
    enablePivot: false;
    enableRowGroup: false;
    filter: string;
    suppressColumnsToolPanel: true;
    headerName?: never;
    field?: never;
    rowGroup?: never;
    rowGroupIndex?: never;
} | {
    colId: string;
    headerName: string;
    field: string;
    hide: true;
    enableValue: false;
    allowedAggFuncs: never[];
    enablePivot: false;
    enableRowGroup: false;
    suppressColumnsToolPanel: true;
    rowGroup: true;
    rowGroupIndex: number;
    filter?: never;
})[];
export declare function generateColumnDefsForDimensions(snapshot: DataCubeSnapshot, configuration: DataCubeConfiguration): ({
    colId: string;
    field: string;
    type?: string | string[];
    cellDataType: boolean | string;
    valueGetter?: string | import("ag-grid-community").ValueGetterFunc<any, any>;
    valueFormatter: string | ((params: import("ag-grid-community").ValueFormatterParams<any, any>) => any);
    refData?: {
        [key: string]: string;
    };
    keyCreator?: (params: import("ag-grid-community").KeyCreatorParams<any, any>) => string;
    equals?: (valueA: any, valueB: any) => boolean;
    tooltipField?: string;
    tooltipValueGetter: (params: import("ag-grid-community").ITooltipParams<any, any, any>) => string | any;
    checkboxSelection?: boolean | import("ag-grid-community").CheckboxSelectionCallback<any, any>;
    showDisabledCheckboxes?: boolean;
    icons?: {
        [key: string]: ((...args: any[]) => any) | string;
    };
    suppressNavigable?: boolean | import("ag-grid-community").SuppressNavigableCallback<any, any>;
    suppressKeyboardEvent?: (params: import("ag-grid-community").SuppressKeyboardEventParams<any, any>) => boolean;
    suppressPaste?: boolean | import("ag-grid-community").SuppressPasteCallback<any, any>;
    suppressFillHandle?: boolean;
    hide: boolean;
    initialHide?: boolean;
    lockVisible: boolean;
    lockPosition?: boolean | "left" | "right";
    suppressMovable?: boolean;
    useValueFormatterForExport?: boolean;
    editable?: boolean | import("ag-grid-community").EditableCallback<any, any>;
    valueSetter?: string | import("ag-grid-community").ValueSetterFunc<any, any>;
    valueParser?: string | import("ag-grid-community").ValueParserFunc<any, any>;
    cellEditor?: any;
    cellEditorParams?: any;
    cellEditorSelector?: import("ag-grid-community").CellEditorSelectorFunc<any, any>;
    singleClickEdit?: boolean;
    cellEditorPopup?: boolean;
    cellEditorPopupPosition?: "over" | "under";
    useValueParserForImport?: boolean;
    onCellValueChanged?: (event: import("ag-grid-community").NewValueParams<any, any>) => void;
    onCellClicked?: (event: import("ag-grid-community").CellClickedEvent<any, any>) => void;
    onCellDoubleClicked?: (event: import("ag-grid-community").CellDoubleClickedEvent<any, any>) => void;
    onCellContextMenu?: (event: import("ag-grid-community").CellContextMenuEvent<any, any>) => void;
    getQuickFilterText?: (params: import("ag-grid-community").GetQuickFilterTextParams<any, any>) => string;
    filterValueGetter?: string | import("ag-grid-community").ValueGetterFunc<any, any>;
    floatingFilter?: boolean;
    suppressFloatingFilterButton?: boolean;
    headerComponent?: any;
    headerComponentParams?: any;
    menuTabs: import("ag-grid-community").ColumnMenuTab[];
    columnChooserParams?: import("ag-grid-community").ColumnChooserParams;
    suppressHeaderMenuButton?: boolean;
    suppressHeaderFilterButton?: boolean;
    mainMenuItems?: (import("ag-grid-community").DefaultMenuItem | import("ag-grid-community").MenuItemDef<any, any>)[] | import("ag-grid-community").GetMainMenuItems<any, any>;
    contextMenuItems?: import("ag-grid-community").GetContextMenuItems<any, any> | (import("ag-grid-community").DefaultMenuItem | import("ag-grid-community").MenuItemDef<any, any>)[];
    headerCheckboxSelection?: boolean | import("ag-grid-community").HeaderCheckboxSelectionCallback<any, any>;
    headerCheckboxSelectionFilteredOnly?: boolean;
    headerCheckboxSelectionCurrentPageOnly?: boolean;
    chartDataType?: "category" | "series" | "time" | "excluded";
    pinned: boolean | "left" | "right" | DataCubeGridClientPinnedAlignement | null;
    initialPinned?: boolean | "left" | "right";
    lockPinned?: boolean;
    pivot?: boolean;
    initialPivot?: boolean;
    pivotIndex?: number | null;
    initialPivotIndex?: number;
    pivotComparator?: (valueA: string, valueB: string) => number;
    enablePivot?: boolean;
    cellStyle?: import("ag-grid-community").CellStyle | import("ag-grid-community").CellStyleFunc<any, any>;
    cellClass?: string | string[] | import("ag-grid-community").CellClassFunc<any, any>;
    cellClassRules: import("ag-grid-community").CellClassRules<any, any>;
    cellRenderer: any;
    cellRendererParams?: any;
    cellRendererSelector?: import("ag-grid-community").CellRendererSelectorFunc<any, any>;
    loadingCellRenderer?: any;
    loadingCellRendererParams?: any;
    loadingCellRendererSelector?: import("ag-grid-community").CellRendererSelectorFunc<any, any>;
    autoHeight?: boolean;
    wrapText?: boolean;
    enableCellChangeFlash?: boolean;
    rowDrag?: boolean | import("ag-grid-community").RowDragCallback<any, any>;
    rowDragText?: (params: import("ag-grid-community").IRowDragItem, dragItemCount: number) => string;
    dndSource?: boolean | import("ag-grid-community").DndSourceCallback<any, any>;
    dndSourceOnRowDrag?: (params: import("ag-grid-community").DndSourceOnRowDragParams<any>) => void;
    rowGroup?: boolean;
    initialRowGroup?: boolean;
    rowGroupIndex?: number | null;
    initialRowGroupIndex?: number;
    enableRowGroup?: boolean;
    enableValue?: boolean;
    aggFunc?: string | import("ag-grid-community").IAggFunc<any, any> | null;
    initialAggFunc?: string | import("ag-grid-community").IAggFunc<any, any>;
    defaultAggFunc?: string;
    allowedAggFuncs?: string[];
    showRowGroup?: string | boolean;
    sortable?: boolean;
    sort?: import("ag-grid-community").SortDirection;
    initialSort?: import("ag-grid-community").SortDirection;
    sortIndex?: number | null;
    initialSortIndex?: number;
    sortingOrder?: import("ag-grid-community").SortDirection[];
    comparator?: (valueA: any, valueB: any, nodeA: import("ag-grid-community").IRowNode<any>, nodeB: import("ag-grid-community").IRowNode<any>, isDescending: boolean) => number;
    unSortIcon?: boolean;
    colSpan?: (params: import("ag-grid-community").ColSpanParams<any, any>) => number;
    rowSpan?: (params: import("ag-grid-community").RowSpanParams<any, any>) => number;
    spanRows?: boolean | ((params: import("ag-grid-community").SpanRowsParams<any, any>) => boolean);
    width?: number;
    initialWidth?: number;
    minWidth?: number;
    maxWidth?: number;
    flex?: number;
    initialFlex?: number;
    resizable?: boolean;
    suppressSizeToFit?: boolean;
    suppressAutoSize?: boolean;
    pivotValueColumn?: import("ag-grid-community").Column | null;
    pivotTotalColumnIds?: string[];
    suppressSpanHeaderHeight: boolean;
    headerName: string;
    headerValueGetter?: string | import("ag-grid-community").HeaderValueGetterFunc<any, any>;
    headerTooltip: string;
    headerStyle?: import("ag-grid-community").HeaderStyle | import("ag-grid-community").HeaderStyleFunc<any, any>;
    headerClass: import("ag-grid-community").HeaderClass<any, any>;
    suppressHeaderKeyboardEvent?: (params: import("ag-grid-community").SuppressHeaderKeyboardEventParams<any, any>) => boolean;
    columnGroupShow?: import("ag-grid-community").ColumnGroupShowType;
    toolPanelClass?: import("ag-grid-community").ToolPanelClass<any, any>;
    suppressColumnsToolPanel?: boolean;
    suppressFiltersToolPanel?: boolean;
    tooltipComponent?: any;
    tooltipComponentParams?: any;
    pivotKeys?: string[];
    cellAriaRole?: string;
    context?: any;
    wrapHeaderText?: boolean;
    autoHeaderHeight?: boolean;
    suppressHeaderContextMenu?: boolean;
    filter?: any;
    filterParams?: any;
    floatingFilterComponent?: any;
    floatingFilterComponentParams?: any;
} | {
    colId: string;
    headerName: string;
    field: string;
    hide: true;
    enableValue: false;
    allowedAggFuncs: never[];
    enablePivot: false;
    enableRowGroup: false;
    suppressColumnsToolPanel: true;
    rowGroup: true;
    rowGroupIndex: number;
})[];
export declare function generateGridOptionsFromSnapshot(snapshot: DataCubeSnapshot, configuration: DataCubeConfiguration, view: DataCubeViewState): GridOptions;
//# sourceMappingURL=DataCubeGridConfigurationBuilder.d.ts.map