import { AfterContentInit, AfterViewInit, ChangeDetectorRef, EventEmitter, ElementRef, IterableDiffers, NgZone, OnInit, QueryList, TemplateRef, ViewContainerRef, Injector, ApplicationRef, EnvironmentInjector } 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, RowType } from '../common/grid.interface';
import { IgxGridSummaryService } from '../summaries/grid-summary.service';
import { IDimensionsChange, IgxPivotGridValueTemplateContext, IPivotConfiguration, IPivotDimension, IPivotValue, IValuesChange, PivotDimensionType } 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 } from '../common/enums';
import { OverlaySettings } from '../../services/public_api';
import { ICellPosition, IColumnMovingEndEventArgs, IColumnMovingEventArgs, IColumnMovingStartEventArgs, IColumnVisibilityChangedEventArgs, IGridEditDoneEventArgs, IGridEditEventArgs, IGridToolbarExportEventArgs, IPinColumnCancellableEventArgs, IPinColumnEventArgs, IPinRowEventArgs, 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/grid.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 { DisplayDensity, IDisplayDensityOptions } from '../../core/displayDensity';
import { PlatformUtil } from '../../core/utils';
import { IFilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree';
import { GridBaseAPIService } from '../api.service';
import { 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 { IgxActionStripComponent } from '../../action-strip/action-strip.component';
import { IPageEventArgs } from '../../paginator/paginator-interfaces';
import { ISortingExpression, SortingDirection } from '../../data-operations/sorting-strategy';
import { IFilteringStrategy } from '../../data-operations/filtering-strategy';
import { IgxPivotValueChipTemplateDirective } from './pivot-grid.directives';
import { IFilteringOperation } from '../../data-operations/filtering-condition';
import { IgxGridValidationService } from '../grid/grid-validation.service';
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 {
    /**
     * 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 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[]>;
    /**
     * 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[];
    /** @hidden @internal */
    theadRow: IgxPivotHeaderRowComponent;
    /**
    * @hidden @internal
    */
    protected valueChipTemplateDirective: IgxPivotValueChipTemplateDirective;
    /**
     * Gets/Sets a custom template for the value chips.
     *
     * @example
     * ```html
     * <igx-pivot-grid [valueChipTemplate]="myTemplate"><igx-pivot-grid>
     * ```
     */
    valueChipTemplate: TemplateRef<IgxPivotGridValueTemplateContext>;
    set pivotConfiguration(value: IPivotConfiguration);
    get pivotConfiguration(): IPivotConfiguration;
    showPivotConfigurationUI: boolean;
    /**
     * @hidden @internal
     */
    role: string;
    /**
     * Enables a super compact theme for the component.
     * @remarks
     * Overrides the displayDensity option if one is set.
     * @example
     * ```html
     * <igx-pivot-grid [superCompactMode]="true"></igx-pivot-grid>
     * ```
     */
    get superCompactMode(): boolean;
    set superCompactMode(value: boolean);
    /**
    * Returns the theme of the component.
    * The default theme is `comfortable`.
    * Available options are `comfortable`, `cosy`, `compact`.
    * @remarks
    * If set while superCompactMode is enabled will have no affect.
    * ```typescript
    * let componentTheme = this.component.displayDensity;
    * ```
    */
    get displayDensity(): DisplayDensity;
    /**
    * Sets the theme of the component.
    */
    set displayDensity(val: DisplayDensity);
    /**
     * @hidden @internal
     */
    recordTemplate: TemplateRef<any>;
    /**
     * @hidden @internal
     */
    headerTemplate: TemplateRef<any>;
    /**
     * @hidden @internal
     */
    resizeLine: IgxPivotGridColumnResizerComponent;
    /**
     * @hidden @internal
     */
    excelStyleFilteringComponents: QueryList<IgxGridExcelStyleFilteringComponent>;
    /**
     * @hidden @internal
     */
    protected rowDimensionContentCollection: QueryList<IgxPivotRowDimensionContentComponent>;
    /**
     * @hidden @internal
     */
    protected get minColumnWidth(): 200 | 104;
    /**
     * @hidden @internal
     */
    verticalRowDimScrollContainers: QueryList<IgxGridForOfDirective<any>>;
    /**
     * @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<IGridEditEventArgs>;
    /**
     * @hidden @internal
     */
    rowAdded: EventEmitter<IRowDataEventArgs>;
    /**
     * @hidden @internal
     */
    rowDeleted: EventEmitter<IRowDataEventArgs>;
    /**
     * @hidden @internal
     */
    rowDelete: EventEmitter<IGridEditEventArgs>;
    /**
     * @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>;
    columnGroupStates: Map<string, boolean>;
    dimensionDataColumns: any;
    get pivotKeys(): {
        aggregations: string;
        records: string;
        children: string;
        level: string;
        rowDimensionSeparator: string;
        columnDimensionSeparator: string;
    };
    isPivot: boolean;
    /**
     * @hidden @internal
     */
    dragRowID: any;
    /**
    * @hidden @internal
    */
    get rootSummariesEnabled(): boolean;
    /**
     * @hidden @internal
     */
    rowDimensionResizing: boolean;
    /**
     * @hidden @internal
     */
    private _emptyRowDimension;
    get emptyRowDimension(): IPivotDimension;
    protected _defaultExpandState: boolean;
    protected _filterStrategy: IFilteringStrategy;
    private _data;
    private _pivotConfiguration;
    private p_id;
    private _superCompactMode;
    /**
    * 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
     */
    actionStrip: IgxActionStripComponent;
    /**
     * @hidden @internal
     */
    pageChange: EventEmitter<number>;
    /**
     * @hidden @internal
     */
    pagingDone: EventEmitter<IPageEventArgs>;
    /**
     * @hidden @internal
     */
    perPageChange: EventEmitter<number>;
    /**
     * @hidden @internal
     */
    shouldGenerate: 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 isFirstPage(): boolean;
    /**
     * @hidden @internal
     */
    get isLastPage(): boolean;
    /**
     * @hidden @internal
     */
    get page(): number;
    set page(_val: number);
    /**
     * @hidden @internal
     */
    get paging(): boolean;
    set paging(_value: boolean);
    /**
     * @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 totalPages(): 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[];
    /**
     * Gets the default row height.
     *
     * @example
     * ```typescript
     * const rowHeigh = this.grid.defaultRowHeight;
     * ```
     */
    get defaultRowHeight(): number;
    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, appRef: ApplicationRef, injector: Injector, envInjector: EnvironmentInjector, navigation: IgxPivotGridNavigationService, filteringService: IgxFilteringService, overlayService: IgxOverlayService, summaryService: IgxGridSummaryService, _displayDensityOptions: IDisplayDensityOptions, localeId: string, platform: PlatformUtil, _diTransactions?: TransactionService<Transaction, State>);
    /**
     * @hidden
     */
    ngOnInit(): void;
    /**
     * @hidden
     */
    ngAfterContentInit(): void;
    /**
     * @hidden @internal
     */
    ngAfterViewInit(): 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[];
    /** @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);
    /**
     * An @Input property that lets you fill the `IgxPivotGridComponent` with an array of data.
     * ```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
     */
    rowDimensionWidthToPixels(dim: IPivotDimension, ignoreBeforeInit?: boolean): number;
    /**
     * @hidden @internal
     */
    reverseDimensionWidthToPercent(width: number): number;
    get pivotContentCalcWidth(): number;
    get pivotPinnedWidth(): number;
    get pivotUnpinnedWidth(): number;
    get rowDimensions(): IPivotDimension[];
    get columnDimensions(): IPivotDimension[];
    get filterDimensions(): IPivotDimension[];
    get values(): IPivotValue[];
    toggleColumn(col: IgxColumnComponent): void;
    protected getColumnWidthSum(): number;
    /**
     * @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
     */
    paginate(_val: number): void;
    /**
    * @hidden @internal
    */
    nextPage(): void;
    /**
    * @hidden @internal
    */
    previousPage(): 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;
    /**
     * 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
     */
    getDimensionsByType(dimension: PivotDimensionType): IPivotDimension[];
    /**
     * @hidden @internal
     */
    resizeRowDimensionPixels(dimension: IPivotDimension, newWidth: number): void;
    protected _removeDimensionInternal(dimension: any): void;
    protected getDimensionType(dimension: IPivotDimension): PivotDimensionType;
    protected getLargesContentWidth(contents: ElementRef[]): string;
    /**
    * @hidden
    */
    get hasMultipleValues(): boolean;
    /**
    * @hidden
    */
    get excelStyleFilterMaxHeight(): string;
    /**
    * @hidden
    */
    get excelStyleFilterMinHeight(): string;
    protected resolveToggle(groupColumn: IgxColumnComponent, state: boolean): void;
    /**
     * @hidden
     * @internal
     */
    protected calcGridHeadRow(): 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 getComponentDensityClass(baseStyleClass: string): string;
    protected generateDimensionColumns(): IgxColumnComponent[];
    protected generateFromData(fields: string[]): Map<string, any>;
    protected generateColumnHierarchy(fields: Map<string, any>, data: any, parent?: any): IgxColumnComponent[];
    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;
    static ɵfac: i0.ɵɵFactoryDeclaration<IgxPivotGridComponent, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, null, null, { optional: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<IgxPivotGridComponent, "igx-pivot-grid", never, { "valueChipTemplate": "valueChipTemplate"; "pivotConfiguration": "pivotConfiguration"; "showPivotConfigurationUI": "showPivotConfigurationUI"; "superCompactMode": "superCompactMode"; "displayDensity": "displayDensity"; "addRowEmptyTemplate": "addRowEmptyTemplate"; "autoGenerateExclude": "autoGenerateExclude"; "snackbarDisplayTime": "snackbarDisplayTime"; "defaultExpandState": "defaultExpandState"; "pagingMode": "pagingMode"; "hideRowSelectors": "hideRowSelectors"; "rowDraggable": "rowDraggable"; "allowAdvancedFiltering": "allowAdvancedFiltering"; "filterMode": "filterMode"; "allowFiltering": "allowFiltering"; "page": "page"; "paging": "paging"; "perPage": "perPage"; "summaryRowHeight": "summaryRowHeight"; "rowEditable": "rowEditable"; "pinning": "pinning"; "summaryPosition": "summaryPosition"; "summaryCalculationMode": "summaryCalculationMode"; "showSummaryOnCollapse": "showSummaryOnCollapse"; "batchEditing": "batchEditing"; "id": "id"; "data": "data"; "totalRecords": "totalRecords"; "emptyPivotGridTemplate": "emptyPivotGridTemplate"; }, { "dimensionsChange": "dimensionsChange"; "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"], ["igx-grid-toolbar", "igx-grid-footer"], false, never>;
}
