import { AfterContentInit, AfterViewInit, ChangeDetectorRef, EventEmitter, ElementRef, IterableDiffers, NgZone, OnInit, QueryList, TemplateRef, ViewContainerRef, Injector, EnvironmentInjector, OnChanges, SimpleChanges } from '@angular/core';
import { IgxGridBaseDirective } from '../grid-base.directive';
import { IgxFilteringService } from '../filtering/grid-filtering.service';
import { IgxGridSelectionService } from '../selection/selection.service';
import { ColumnType, GridType, IgxColumnTemplateContext, RowType } from '../common/grid.interface';
import { IgxGridSummaryService } from '../summaries/grid-summary.service';
import { IDimensionsChange, IgxPivotGridValueTemplateContext, IPivotConfiguration, IPivotConfigurationChangedEventArgs, IPivotDimension, IPivotValue, IValuesChange, PivotDimensionType, IPivotUISettings } from './pivot-grid.interface';
import { IgxPivotHeaderRowComponent } from './pivot-header-row.component';
import { IgxColumnGroupComponent } from '../columns/column-group.component';
import { IgxColumnComponent } from '../columns/column.component';
import { FilterMode, GridPagingMode, GridSummaryCalculationMode, GridSummaryPosition, Size } from '../common/enums';
import { OverlaySettings } from '../../services/public_api';
import { IGridEditEventArgs, ICellPosition, IColumnMovingEndEventArgs, IColumnMovingEventArgs, IColumnMovingStartEventArgs, IColumnVisibilityChangedEventArgs, IGridEditDoneEventArgs, IGridToolbarExportEventArgs, IPinColumnCancellableEventArgs, IPinColumnEventArgs, IPinRowEventArgs, IRowDataCancelableEventArgs, IRowDataEventArgs, IRowDragEndEventArgs, IRowDragStartEventArgs } from '../common/events';
import { IgxGridRowComponent } from '../grid/grid-row.component';
import { DropPosition } from '../moving/moving.service';
import { IgxGridExcelStyleFilteringComponent } from '../filtering/excel-style/excel-style-filtering.component';
import { IgxPivotGridNavigationService } from './pivot-grid-navigation.service';
import { IgxPivotColumnResizingService } from '../resizing/pivot-grid/pivot-resizing.service';
import { IgxFlatTransactionFactory, IgxOverlayService, State, Transaction, TransactionService } from '../../services/public_api';
import { PlatformUtil } from '../../core/utils';
import { IFilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree';
import { GridBaseAPIService } from '../api.service';
import { IForOfDataChangingEventArgs, IgxGridForOfDirective } from '../../directives/for-of/for_of.directive';
import { IgxPivotRowDimensionContentComponent } from './pivot-row-dimension-content.component';
import { IgxPivotGridColumnResizerComponent } from '../resizing/pivot-grid/pivot-resizer.component';
import { ISortingExpression, SortingDirection } from '../../data-operations/sorting-strategy';
import { IFilteringStrategy } from '../../data-operations/filtering-strategy';
import { IgxPivotRowDimensionHeaderTemplateDirective, IgxPivotValueChipTemplateDirective } from './pivot-grid.directives';
import { IFilteringOperation } from '../../data-operations/filtering-condition';
import { IgxGridValidationService } from '../grid/grid-validation.service';
import { IDataCloneStrategy } from '../../data-operations/data-clone-strategy';
import { IgxTextHighlightService } from '../../directives/text-highlight/text-highlight.service';
import { IgxPivotRowHeaderGroupComponent } from './pivot-row-header-group.component';
import { IgxPivotRowDimensionMrlRowComponent } from './pivot-row-dimension-mrl-row.component';
import * as i0 from "@angular/core";
/**
 * Pivot Grid provides a way to present and manipulate data in a pivot table view.
 *
 * @igxModule IgxPivotGridModule
 * @igxGroup Grids & Lists
 * @igxKeywords pivot, grid, table
 * @igxTheme igx-grid-theme
 * @remarks
 * The Ignite UI Pivot Grid is used for grouping and aggregating simple flat data into a pivot table.  Once data
 * has been bound and the dimensions and values configured it can be manipulated via sorting and filtering.
 * @example
 * ```html
 * <igx-pivot-grid [data]="data" [pivotConfiguration]="configuration">
 * </igx-pivot-grid>
 * ```
 */
export declare class IgxPivotGridComponent extends IgxGridBaseDirective implements OnInit, AfterContentInit, GridType, AfterViewInit, OnChanges {
    navigation: IgxPivotGridNavigationService;
    /**
     * Emitted when the dimension collection is changed via the grid chip area.
     *
     * @remarks
     * Returns the new dimension collection and its type:
     * @example
     * ```html
     * <igx-pivot-grid #grid [data]="localData" [height]="'305px'"
     *              (dimensionsChange)="dimensionsChange($event)"></igx-grid>
     * ```
     */
    dimensionsChange: EventEmitter<IDimensionsChange>;
    /**
     * Emitted when any of the pivotConfiguration properties is changed via the grid chip area.
     *
     * @example
     * ```html
     * <igx-pivot-grid #grid [data]="localData" [height]="'305px'"
     *              (pivotConfigurationChanged)="configurationChanged($event)"></igx-grid>
     * ```
     */
    pivotConfigurationChange: EventEmitter<IPivotConfigurationChangedEventArgs>;
    /**
     * Emitted when the dimension is initialized.
     * @remarks
     * Emits the dimension that is about to be initialized.
     * @example
     * ```html
     * <igx-pivot-grid #grid [data]="localData" [height]="'305px'"
     *              (dimensionInit)="dimensionInit($event)"></igx-pivot-grid>
     * ```
     */
    dimensionInit: EventEmitter<IPivotDimension>;
    /**
     * Emitted when the value is initialized.
     * @remarks
     * Emits the value that is about to be initialized.
     * @example
     * ```html
     * <igx-pivot-grid #grid [data]="localData" [height]="'305px'"
     *              (valueInit)="valueInit($event)"></igx-pivot-grid>
     * ```
     */
    valueInit: EventEmitter<IPivotValue>;
    /**
     * Emitted when a dimension is sorted.
     *
     * @example
     * ```html
     * <igx-pivot-grid #grid [data]="localData" [height]="'305px'"
     *              (dimensionsSortingExpressionsChange)="dimensionsSortingExpressionsChange($event)"></igx-pivot-grid>
     * ```
     */
    dimensionsSortingExpressionsChange: EventEmitter<ISortingExpression<any>[]>;
    /**
     * Emitted when the values collection is changed via the grid chip area.
     *
     * @remarks
     * Returns the new dimension
     * @example
     * ```html
     * <igx-pivot-grid #grid [data]="localData" [height]="'305px'"
     *              (valuesChange)="valuesChange($event)"></igx-grid>
     * ```
    */
    valuesChange: EventEmitter<IValuesChange>;
    /**
     * Gets the sorting expressions generated for the dimensions.
     *
     * @example
     * ```typescript
     * const expressions = this.grid.dimensionsSortingExpressions;
     * ```
     */
    get dimensionsSortingExpressions(): ISortingExpression<any>[];
    /** @hidden @internal */
    theadRow: IgxPivotHeaderRowComponent;
    /**
    * @hidden @internal
    */
    protected valueChipTemplateDirective: IgxPivotValueChipTemplateDirective;
    /**
     * @hidden @internal
     */
    protected rowDimensionHeaderDirective: IgxPivotRowDimensionHeaderTemplateDirective;
    /**
     * Gets/Sets a custom template for the value chips.
     *
     * @example
     * ```html
     * <igx-pivot-grid [valueChipTemplate]="myTemplate"><igx-pivot-grid>
     * ```
     */
    valueChipTemplate: TemplateRef<IgxPivotGridValueTemplateContext>;
    rowDimensionHeaderTemplate: TemplateRef<IgxColumnTemplateContext>;
    /**
     * Gets/Sets the pivot configuration with all related dimensions and values.
     *
     * @example
     * ```html
     * <igx-pivot-grid [pivotConfiguration]="config"></igx-pivot-grid>
     * ```
     */
    set pivotConfiguration(value: IPivotConfiguration);
    get pivotConfiguration(): IPivotConfiguration;
    /**
     * Gets/Sets whether to auto-generate the pivot configuration based on the provided data.
     *
     * @remarks
     * The default value is false. When set to true, it will override all dimensions and values in the pivotConfiguration.
     * @example
     * ```html
     * <igx-pivot-grid [data]="Data" [autoGenerateConfig]="true"></igx-pivot-grid>
     * ```
     */
    autoGenerateConfig: boolean;
    set pivotUI(value: IPivotUISettings);
    get pivotUI(): IPivotUISettings;
    /**
     * @hidden @internal
     */
    role: string;
    /**
     * Enables a super compact theme for the component.
     * @remarks
     * Overrides the grid size option if one is set.
     * @example
     * ```html
     * <igx-pivot-grid [superCompactMode]="true"></igx-pivot-grid>
     * ```
     */
    get superCompactMode(): boolean;
    set superCompactMode(value: boolean);
    /** @hidden @internal */
    get gridSize(): Size;
    /**
     * Gets/Sets the values clone strategy of the pivot grid when assigning them to different dimensions.
     *
     * @example
     * ```html
     *  <igx-pivot-grid #grid [data]="localData" [pivotValueCloneStrategy]="customCloneStrategy"></igx-pivot-grid>
     * ```
     * @hidden @internal
     */
    get pivotValueCloneStrategy(): IDataCloneStrategy;
    set pivotValueCloneStrategy(strategy: IDataCloneStrategy);
    /**
     * @hidden @internal
     */
    recordTemplate: TemplateRef<any>;
    /**
     * @hidden @internal
     */
    headerTemplate: TemplateRef<any>;
    /**
     * @hidden @internal
     */
    rowDimensionContainer: QueryList<ElementRef<any>>;
    /**
     * @hidden @internal
     */
    resizeLine: IgxPivotGridColumnResizerComponent;
    /**
     * @hidden @internal
     */
    excelStyleFilteringComponents: QueryList<IgxGridExcelStyleFilteringComponent>;
    /**
     * @hidden @internal
     */
    protected rowDimensionContentCollection: QueryList<IgxPivotRowDimensionContentComponent>;
    /**
     * @hidden @internal
     */
    get minColumnWidth(): 200 | 104;
    /**
     * @hidden @internal
     */
    verticalRowDimScrollContainers: QueryList<IgxGridForOfDirective<any, any[]>>;
    /**
     * @hidden @internal
     */
    rowDimensionMrlRowsCollection: QueryList<IgxPivotRowDimensionMrlRowComponent>;
    /**
     * @hidden @internal
     */
    addRowEmptyTemplate: TemplateRef<void>;
    /**
     * @hidden @internal
     */
    autoGenerateExclude: string[];
    /**
     * @hidden @internal
     */
    snackbarDisplayTime: number;
    /**
     * @hidden @internal
     */
    cellEdit: EventEmitter<IGridEditEventArgs>;
    /**
     * @hidden @internal
     */
    cellEditDone: EventEmitter<IGridEditDoneEventArgs>;
    /**
     * @hidden @internal
     */
    cellEditEnter: EventEmitter<IGridEditEventArgs>;
    /**
     * @hidden @internal
     */
    cellEditExit: EventEmitter<IGridEditDoneEventArgs>;
    /**
     * @hidden @internal
     */
    columnMovingStart: EventEmitter<IColumnMovingStartEventArgs>;
    /**
     * @hidden @internal
     */
    columnMoving: EventEmitter<IColumnMovingEventArgs>;
    /**
     * @hidden @internal
     */
    columnMovingEnd: EventEmitter<IColumnMovingEndEventArgs>;
    /**
     * @hidden @internal
     */
    columnPin: EventEmitter<IPinColumnCancellableEventArgs>;
    /**
     * @hidden @internal
     */
    columnPinned: EventEmitter<IPinColumnEventArgs>;
    /**
     * @hidden @internal
     */
    rowAdd: EventEmitter<IRowDataCancelableEventArgs>;
    /**
     * @hidden @internal
     */
    rowAdded: EventEmitter<IRowDataEventArgs>;
    /**
     * @hidden @internal
     */
    rowDeleted: EventEmitter<IRowDataEventArgs>;
    /**
     * @hidden @internal
     */
    rowDelete: EventEmitter<IRowDataCancelableEventArgs>;
    /**
     * @hidden @internal
     */
    rowDragStart: EventEmitter<IRowDragStartEventArgs>;
    /**
     * @hidden @internal
     */
    rowDragEnd: EventEmitter<IRowDragEndEventArgs>;
    /**
     * @hidden @internal
     */
    rowEditEnter: EventEmitter<IGridEditEventArgs>;
    /**
     * @hidden @internal
     */
    rowEdit: EventEmitter<IGridEditEventArgs>;
    /**
     * @hidden @internal
     */
    rowEditDone: EventEmitter<IGridEditDoneEventArgs>;
    /**
     * @hidden @internal
     */
    rowEditExit: EventEmitter<IGridEditDoneEventArgs>;
    /**
     * @hidden @internal
     */
    rowPinning: EventEmitter<IPinRowEventArgs>;
    /**
     * @hidden @internal
     */
    rowPinned: EventEmitter<IPinRowEventArgs>;
    /** @hidden @internal */
    columnGroupStates: Map<string, boolean>;
    /** @hidden @internal */
    dimensionDataColumns: any[];
    /** @hidden @internal */
    get pivotKeys(): {
        aggregations: string;
        records: string;
        children: string;
        level: string;
        rowDimensionSeparator: string;
        columnDimensionSeparator: string;
    };
    /** @hidden @internal */
    get type(): GridType["type"];
    /**
     * @hidden @internal
     */
    dragRowID: any;
    /**
    * @hidden @internal
    */
    get rootSummariesEnabled(): boolean;
    /**
     * @hidden @internal
     */
    rowDimensionResizing: boolean;
    private _emptyRowDimension;
    /**
     * @hidden @internal
     */
    get emptyRowDimension(): IPivotDimension;
    protected _pivotValueCloneStrategy: IDataCloneStrategy;
    protected _defaultExpandState: boolean;
    protected _filterStrategy: IFilteringStrategy;
    protected regroupTrigger: number;
    private _data;
    private _pivotConfiguration;
    private p_id;
    private _superCompactMode;
    private _pivotUI;
    private _sortableColumns;
    private _visibleRowDimensions;
    private _shouldUpdateSizes;
    /**
    * Gets/Sets the default expand state for all rows.
    */
    get defaultExpandState(): boolean;
    set defaultExpandState(val: boolean);
    /**
     * @hidden @internal
     */
    get pagingMode(): GridPagingMode;
    set pagingMode(_val: GridPagingMode);
    /**
     * @hidden @internal
     */
    get hideRowSelectors(): boolean;
    set hideRowSelectors(_value: boolean);
    /**
     * @hidden @internal
     */
    autoGenerate: boolean;
    /**
     * @hidden @internal
     */
    get actionStrip(): any;
    /**
     * @hidden @internal
     * @deprecated in version 18.2.0. This property is no longer supported.
     */
    get shouldGenerate(): boolean;
    set shouldGenerate(value: boolean);
    /**
     * @hidden @internal
     */
    moving: boolean;
    /**
     * @hidden @internal
     */
    toolbarExporting: EventEmitter<IGridToolbarExportEventArgs>;
    /**
     * @hidden @internal
     */
    get rowDraggable(): boolean;
    set rowDraggable(_val: boolean);
    /**
     * @hidden @internal
     */
    get allowAdvancedFiltering(): boolean;
    set allowAdvancedFiltering(_value: boolean);
    /**
     * @hidden @internal
     */
    get filterMode(): FilterMode;
    set filterMode(_value: FilterMode);
    /**
     * @hidden @internal
     */
    get allowFiltering(): boolean;
    set allowFiltering(_value: boolean);
    /**
     * @hidden @internal
     */
    get page(): number;
    set page(_val: number);
    /**
     * @hidden @internal
     */
    get perPage(): number;
    set perPage(_val: number);
    /**
     * @hidden @internal
     */
    get pinnedColumns(): IgxColumnComponent[];
    /**
    * @hidden @internal
    */
    get unpinnedColumns(): IgxColumnComponent[];
    /**
    * @hidden @internal
    */
    get unpinnedDataView(): any[];
    /**
    * @hidden @internal
    */
    get unpinnedWidth(): number;
    /**
     * @hidden @internal
     */
    get pinnedWidth(): number;
    /**
     * @hidden @internal
     */
    set summaryRowHeight(_value: number);
    get summaryRowHeight(): number;
    /**
     * @hidden @internal
     */
    get transactions(): TransactionService<Transaction, State>;
    /**
     * @hidden @internal
     */
    get dragIndicatorIconTemplate(): TemplateRef<any>;
    set dragIndicatorIconTemplate(_val: TemplateRef<any>);
    /**
     * @hidden @internal
     */
    get rowEditable(): boolean;
    set rowEditable(_val: boolean);
    /**
     * @hidden @internal
     */
    get pinning(): {};
    set pinning(_value: {});
    /**
     * @hidden @internal
     */
    get summaryPosition(): GridSummaryPosition;
    set summaryPosition(_value: GridSummaryPosition);
    /**
     * @hidden @interal
     */
    get summaryCalculationMode(): GridSummaryCalculationMode;
    set summaryCalculationMode(_value: GridSummaryCalculationMode);
    /**
     * @hidden @interal
     */
    get showSummaryOnCollapse(): boolean;
    set showSummaryOnCollapse(_value: boolean);
    /**
     * @hidden @internal
     */
    get hiddenColumnsCount(): any;
    /**
     * @hidden @internal
     */
    get pinnedColumnsCount(): any;
    /**
     * @hidden @internal
     */
    get batchEditing(): boolean;
    set batchEditing(_val: boolean);
    get selectedRows(): any[];
    constructor(validationService: IgxGridValidationService, selectionService: IgxGridSelectionService, colResizingService: IgxPivotColumnResizingService, gridAPI: GridBaseAPIService<IgxGridBaseDirective & GridType>, transactionFactory: IgxFlatTransactionFactory, elementRef: ElementRef<HTMLElement>, zone: NgZone, document: any, cdr: ChangeDetectorRef, differs: IterableDiffers, viewRef: ViewContainerRef, injector: Injector, envInjector: EnvironmentInjector, navigation: IgxPivotGridNavigationService, filteringService: IgxFilteringService, textHighlightService: IgxTextHighlightService, overlayService: IgxOverlayService, summaryService: IgxGridSummaryService, localeId: string, platform: PlatformUtil, _diTransactions?: TransactionService<Transaction, State>);
    /**
     * @hidden
     */
    ngOnInit(): void;
    /**
     * @hidden
     */
    ngAfterContentInit(): void;
    /**
     * @hidden @internal
     */
    ngAfterViewInit(): void;
    /**
     * @hidden @internal
     */
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * Notifies for dimension change.
     */
    notifyDimensionChange(regenerateColumns?: boolean): void;
    /**
     * Gets the full list of dimensions.
     *
     * @example
     * ```typescript
     * const dimensions = this.grid.allDimensions;
     * ```
     */
    get allDimensions(): IPivotDimension[];
    protected get allVisibleDimensions(): IPivotDimension[];
    protected get shouldResize(): boolean;
    /** @hidden @internal */
    createFilterESF(dropdown: any, column: ColumnType, options: OverlaySettings, shouldReatach: boolean): {
        id: any;
        ref: any;
    };
    /** @hidden */
    featureColumnsWidth(): number;
    /**
     * Gets/Sets the value of the `id` attribute.
     *
     * @remarks
     * If not provided it will be automatically generated.
     * @example
     * ```html
     * <igx-pivot-grid [id]="'igx-pivot-1'" [data]="Data"></igx-pivot-grid>
     * ```
     */
    get id(): string;
    set id(value: string);
    /**
     * Gets/Sets the array of data that populates the component.
     * ```html
     * <igx-pivot-grid [data]="Data"></igx-pivot-grid>
     * ```
     */
    set data(value: any[] | null);
    /**
     * Returns an array of data set to the component.
     * ```typescript
     * let data = this.grid.data;
     * ```
     */
    get data(): any[] | null;
    /**
     * @hidden
     */
    getContext(rowData: any, rowIndex: any): any;
    /**
     * @hidden @internal
     */
    get pivotRowWidths(): number;
    /**
     * @hidden @internal
     */
    rowDimensionWidth(dim: any): string;
    /**
     * @hidden @internal
     */
    rowDimensionWidthToPixels(dim: IPivotDimension): number;
    /**
     * @hidden @internal
     */
    reverseDimensionWidthToPercent(width: number): number;
    /** @hidden @internal */
    get pivotContentCalcWidth(): number;
    /** @hidden @internal */
    get pivotPinnedWidth(): number;
    /** @hidden @internal */
    get pivotUnpinnedWidth(): number;
    /** @hidden @internal */
    get rowDimensions(): IPivotDimension[];
    /** @hidden @internal */
    set visibleRowDimensions(value: IPivotDimension[]);
    get visibleRowDimensions(): IPivotDimension[];
    /** @hidden @internal */
    get columnDimensions(): IPivotDimension[];
    /** @hidden @internal */
    get filterDimensions(): IPivotDimension[];
    /** @hidden @internal */
    get values(): IPivotValue[];
    toggleColumn(col: IgxColumnComponent): void;
    /**
     * @hidden @internal
     */
    isRecordPinnedByIndex(_rowIndex: number): any;
    /**
     * @hidden @internal
     */
    toggleColumnVisibility(_args: IColumnVisibilityChangedEventArgs): void;
    /**
     * @hidden @internal
     */
    expandAll(): void;
    /**
     * @hidden @internal
     */
    collapseAll(): void;
    /**
     * @hidden @internal
     */
    expandRow(_rowID: any): void;
    /**
     * @hidden @internal
     */
    collapseRow(_rowID: any): void;
    /**
     * @hidden @internal
     */
    get pinnedRows(): IgxGridRowComponent[];
    /**
     * @hidden @internal
     */
    get totalRecords(): number;
    set totalRecords(_total: number);
    /**
     * @hidden @internal
     */
    moveColumn(_column: IgxColumnComponent, _target: IgxColumnComponent, _pos?: DropPosition): void;
    /**
     * @hidden @internal
     */
    addRow(_data: any): void;
    /**
     * @hidden @internal
     */
    deleteRow(_rowSelector: any): any;
    /**
     * @hidden @internal
     */
    updateCell(_value: any, _rowSelector: any, _column: string): void;
    /**
     * @hidden @internal
     */
    updateRow(_value: any, _rowSelector: any): void;
    /**
     * @hidden @internal
     */
    enableSummaries(..._rest: any[]): void;
    /**
     * @hidden @internal
     */
    disableSummaries(..._rest: any[]): void;
    /**
     * @hidden @internal
     */
    pinColumn(_columnName: string | IgxColumnComponent, _index?: any): boolean;
    /**
     * @hidden @internal
     */
    unpinColumn(_columnName: string | IgxColumnComponent, _index?: any): boolean;
    /**
     * @hidden @internal
     */
    pinRow(_rowID: any, _index?: number, _row?: RowType): boolean;
    /**
     * @hidden @internal
     */
    unpinRow(_rowID: any, _row?: RowType): boolean;
    /**
     * @hidden @internal
     */
    get pinnedRowHeight(): void;
    /**
     * @hidden @internal
     */
    get hasEditableColumns(): boolean;
    /**
     * @hidden @internal
     */
    get hasSummarizedColumns(): boolean;
    /**
     * @hidden @internal
     */
    get hasMovableColumns(): boolean;
    /**
     * @hidden @internal
     */
    get pinnedDataView(): any[];
    /**
     * @hidden @internal
     */
    openAdvancedFilteringDialog(_overlaySettings?: OverlaySettings): void;
    /**
     * @hidden @internal
     */
    closeAdvancedFilteringDialog(_applyChanges: boolean): void;
    /**
     * @hidden @internal
     */
    endEdit(_commit?: boolean, _event?: Event): boolean;
    /**
     * @hidden @internal
     */
    beginAddRowById(_rowID: any, _asChild?: boolean): void;
    /**
     * @hidden @internal
     */
    beginAddRowByIndex(_index: number): void;
    /**
     * @hidden @internal
     */
    clearSearch(): void;
    /**
    * @hidden @internal
    */
    refreshSearch(_updateActiveInfo?: boolean, _endEdit?: boolean): number;
    /**
    * @hidden @internal
    */
    findNext(_text: string, _caseSensitive?: boolean, _exactMatch?: boolean): number;
    /**
    * @hidden @internal
    */
    findPrev(_text: string, _caseSensitive?: boolean, _exactMatch?: boolean): number;
    /**
    * @hidden @internal
    */
    getNextCell(currRowIndex: number, curVisibleColIndex: number, callback?: (IgxColumnComponent: any) => boolean): ICellPosition;
    /**
    * @hidden @internal
    */
    getPreviousCell(currRowIndex: number, curVisibleColIndex: number, callback?: (IgxColumnComponent: any) => boolean): ICellPosition;
    /**
    * @hidden @internal
    */
    getPinnedWidth(takeHidden?: boolean): number;
    /**
     * @hidden @internal
     */
    get totalHeight(): number;
    getColumnGroupExpandState(col: IgxColumnComponent): boolean;
    toggleRowGroup(col: IgxColumnComponent, newState: boolean): void;
    /**
    * @hidden @internal
    */
    setupColumns(): void;
    /**
    * @hidden @internal
    */
    dataRebinding(event: IForOfDataChangingEventArgs): void;
    /**
     * Auto-sizes row dimension cells.
     *
     * @remarks
     * Only sizes based on the dimension cells in view.
     * @example
     * ```typescript
     * this.grid.autoSizeRowDimension(dimension);
     * ```
     * @param dimension The row dimension to size.
     */
    autoSizeRowDimension(dimension: IPivotDimension): void;
    /**
     * Inserts dimension in target collection by type at specified index or at the collection's end.
     *
     * @example
     * ```typescript
     * this.grid.insertDimensionAt(dimension, PivotDimensionType.Row, 1);
     * ```
     * @param dimension The dimension that will be added.
     * @param targetCollectionType The target collection type to add to. Can be Row, Column or Filter.
     * @param index The index in the collection at which to add.
     * This parameter is optional. If not set it will add it to the end of the collection.
     */
    insertDimensionAt(dimension: IPivotDimension, targetCollectionType: PivotDimensionType, index?: number): void;
    /**
     * Move dimension from its currently collection to the specified target collection by type at specified index or at the collection's end.
     *
     * @example
     * ```typescript
     * this.grid.moveDimension(dimension, PivotDimensionType.Row, 1);
     * ```
     * @param dimension The dimension that will be moved.
     * @param targetCollectionType The target collection type to move it to. Can be Row, Column or Filter.
     * @param index The index in the collection at which to add.
     * This parameter is optional. If not set it will add it to the end of the collection.
     */
    moveDimension(dimension: IPivotDimension, targetCollectionType: PivotDimensionType, index?: number): void;
    /**
     * Removes dimension from its currently collection.
     * @remarks
     * This is different than toggleDimension that enabled/disables the dimension.
     * This completely removes the specified dimension from the collection.
     * @example
     * ```typescript
     * this.grid.removeDimension(dimension);
     * ```
     * @param dimension The dimension to be removed.
     */
    removeDimension(dimension: IPivotDimension): void;
    /**
     * Toggles the dimension's enabled state on or off.
     * @remarks
     * The dimension remains in its current collection. This just changes its enabled state.
     * @example
     * ```typescript
     * this.grid.toggleDimension(dimension);
     * ```
     * @param dimension The dimension to be toggled.
     */
    toggleDimension(dimension: IPivotDimension): void;
    /**
     * Inserts value at specified index or at the end.
     *
     * @example
     * ```typescript
     * this.grid.insertValueAt(value, 1);
     * ```
     * @param value The value definition that will be added.
     * @param index The index in the collection at which to add.
     * This parameter is optional. If not set it will add it to the end of the collection.
     */
    insertValueAt(value: IPivotValue, index?: number): void;
    /**
     * Move value from its currently at specified index or at the end.
     *
     * @example
     * ```typescript
     * this.grid.moveValue(value, 1);
     * ```
     * @param value The value that will be moved.
     * @param index The index in the collection at which to add.
     * This parameter is optional. If not set it will add it to the end of the collection.
     */
    moveValue(value: IPivotValue, index?: number): void;
    /**
     * Removes value from collection.
     * @remarks
     * This is different than toggleValue that enabled/disables the value.
     * This completely removes the specified value from the collection.
     * @example
     * ```typescript
     * this.grid.removeValue(dimension);
     * ```
     * @param value The value to be removed.
     */
    removeValue(value: IPivotValue): void;
    /**
     * Toggles the value's enabled state on or off.
     * @remarks
     * The value remains in its current collection. This just changes its enabled state.
     * @example
     * ```typescript
     * this.grid.toggleValue(value);
     * ```
     * @param value The value to be toggled.
     */
    toggleValue(value: IPivotValue): void;
    /**
     * Sort the dimension and its children in the provided direction.
     * @example
     * ```typescript
     * this.grid.sortDimension(dimension, SortingDirection.Asc);
     * ```
     * @param value The value to be toggled.
     */
    sortDimension(dimension: IPivotDimension, sortDirection: SortingDirection): void;
    /**
     * Filters a single `IPivotDimension`.
     *
     * @example
     * ```typescript
     * public filter() {
     *      const set = new Set();
     *      set.add('Value 1');
     *      set.add('Value 2');
     *      this.grid1.filterDimension(this.pivotConfigHierarchy.rows[0], set, IgxStringFilteringOperand.instance().condition('in'));
     * }
     * ```
     */
    filterDimension(dimension: IPivotDimension, value: any, conditionOrExpressionTree?: IFilteringOperation | IFilteringExpressionsTree): void;
    /**
     * @hidden @internal
     */
    getRowDimensionByName(memberName: string): any;
    /**
     * @hidden @internal
     */
    getDimensionsByType(dimension: PivotDimensionType): IPivotDimension[];
    /**
     * @hidden @internal
     */
    resizeRowDimensionPixels(dimension: IPivotDimension, newWidth: number): void;
    protected _removeDimensionInternal(dimension: any): void;
    protected getDimensionType(dimension: IPivotDimension): PivotDimensionType;
    protected getPivotRowHeaderContentWidth(headerGroup: IgxPivotRowHeaderGroupComponent): number;
    protected getLargesContentWidth(contents: ElementRef[]): string;
    /** @hidden @internal */
    get hasHorizontalLayout(): boolean;
    /**
    * @hidden
    */
    get hasMultipleValues(): boolean;
    /**
    * @hidden
    */
    get excelStyleFilterMaxHeight(): string;
    /**
    * @hidden
    */
    get excelStyleFilterMinHeight(): string;
    /** @hidden @internal */
    get activeDescendant(): string;
    protected resolveToggle(groupColumn: IgxColumnComponent, state: boolean): void;
    protected buildDataView(data: any[]): void;
    /**
     * @hidden @internal
     */
    protected getDataBasedBodyHeight(): number;
    protected horizontalScrollHandler(event: any): void;
    protected verticalScrollHandler(event: any): void;
    /**
     * @hidden
     */
    protected autogenerateColumns(): void;
    protected generateDimensionColumns(): IgxColumnComponent[];
    protected calculateGridSizes(recalcFeatureWidth?: boolean): void;
    protected getContentCollection(dimenstion: IPivotDimension): any;
    protected autoSizeDimensionsInView(): void;
    /** @hidden @internal */
    get hasDimensionsToAutosize(): boolean;
    protected generateFromData(fields: string[]): Map<string, any>;
    protected generateColumnHierarchy(fields: Map<string, any>, data: any, parent?: any): IgxColumnComponent[];
    protected generateConfig(): void;
    protected createColumnForDimension(value: any, data: any, parent: ColumnType, isGroup: boolean): IgxColumnGroupComponent;
    protected resolveColumnDimensionWidth(dim: IPivotDimension): string;
    protected getMeasureChildren(data: any, parent: any, hidden: any, parentWidth: any): any[];
    /**
    * @hidden @internal
    */
    defaultEmptyPivotGridTemplate: TemplateRef<any>;
    /**
     * Gets/Sets a custom template when pivot grid is empty.
     *
     * @example
     * ```html
     * <igx-pivot-grid [emptyPivotGridTemplate]="myTemplate"><igx-pivot-grid>
     * ```
     */
    emptyPivotGridTemplate: TemplateRef<void>;
    /**
    * @hidden @internal
    */
    get template(): TemplateRef<any>;
    private emitInitEvents;
    protected rowDimensionByName(memberName: string): IPivotDimension;
    protected calculateResizerTop(): any;
    protected updateDefaultRowHeight(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxPivotGridComponent, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IgxPivotGridComponent, "igx-pivot-grid", never, { "valueChipTemplate": { "alias": "valueChipTemplate"; "required": false; }; "rowDimensionHeaderTemplate": { "alias": "rowDimensionHeaderTemplate"; "required": false; }; "pivotConfiguration": { "alias": "pivotConfiguration"; "required": false; }; "autoGenerateConfig": { "alias": "autoGenerateConfig"; "required": false; }; "pivotUI": { "alias": "pivotUI"; "required": false; }; "superCompactMode": { "alias": "superCompactMode"; "required": false; }; "pivotValueCloneStrategy": { "alias": "pivotValueCloneStrategy"; "required": false; }; "addRowEmptyTemplate": { "alias": "addRowEmptyTemplate"; "required": false; }; "autoGenerateExclude": { "alias": "autoGenerateExclude"; "required": false; }; "snackbarDisplayTime": { "alias": "snackbarDisplayTime"; "required": false; }; "defaultExpandState": { "alias": "defaultExpandState"; "required": false; }; "pagingMode": { "alias": "pagingMode"; "required": false; }; "hideRowSelectors": { "alias": "hideRowSelectors"; "required": false; }; "rowDraggable": { "alias": "rowDraggable"; "required": false; }; "allowAdvancedFiltering": { "alias": "allowAdvancedFiltering"; "required": false; }; "filterMode": { "alias": "filterMode"; "required": false; }; "allowFiltering": { "alias": "allowFiltering"; "required": false; }; "page": { "alias": "page"; "required": false; }; "perPage": { "alias": "perPage"; "required": false; }; "summaryRowHeight": { "alias": "summaryRowHeight"; "required": false; }; "rowEditable": { "alias": "rowEditable"; "required": false; }; "pinning": { "alias": "pinning"; "required": false; }; "summaryPosition": { "alias": "summaryPosition"; "required": false; }; "summaryCalculationMode": { "alias": "summaryCalculationMode"; "required": false; }; "showSummaryOnCollapse": { "alias": "showSummaryOnCollapse"; "required": false; }; "batchEditing": { "alias": "batchEditing"; "required": false; }; "id": { "alias": "id"; "required": false; }; "data": { "alias": "data"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "emptyPivotGridTemplate": { "alias": "emptyPivotGridTemplate"; "required": false; }; }, { "dimensionsChange": "dimensionsChange"; "pivotConfigurationChange": "pivotConfigurationChange"; "dimensionInit": "dimensionInit"; "valueInit": "valueInit"; "dimensionsSortingExpressionsChange": "dimensionsSortingExpressionsChange"; "valuesChange": "valuesChange"; "cellEdit": "cellEdit"; "cellEditDone": "cellEditDone"; "cellEditEnter": "cellEditEnter"; "cellEditExit": "cellEditExit"; "columnMovingStart": "columnMovingStart"; "columnMoving": "columnMoving"; "columnMovingEnd": "columnMovingEnd"; "columnPin": "columnPin"; "columnPinned": "columnPinned"; "rowAdd": "rowAdd"; "rowAdded": "rowAdded"; "rowDeleted": "rowDeleted"; "rowDelete": "rowDelete"; "rowDragStart": "rowDragStart"; "rowDragEnd": "rowDragEnd"; "rowEditEnter": "rowEditEnter"; "rowEdit": "rowEdit"; "rowEditDone": "rowEditDone"; "rowEditExit": "rowEditExit"; "rowPinning": "rowPinning"; "rowPinned": "rowPinned"; }, ["valueChipTemplateDirective", "rowDimensionHeaderDirective"], ["igx-grid-toolbar,igc-grid-toolbar", "igx-grid-footer,igc-grid-footer", "igx-grid-state,igc-grid-state"], true, never>;
    static ngAcceptInputType_autoGenerateConfig: unknown;
    static ngAcceptInputType_defaultExpandState: unknown;
    static ngAcceptInputType_hideRowSelectors: unknown;
    static ngAcceptInputType_rowDraggable: unknown;
    static ngAcceptInputType_allowAdvancedFiltering: unknown;
    static ngAcceptInputType_allowFiltering: unknown;
    static ngAcceptInputType_rowEditable: unknown;
    static ngAcceptInputType_showSummaryOnCollapse: unknown;
    static ngAcceptInputType_batchEditing: unknown;
}
