import { TransferState } from '@angular/platform-browser';
import { ElementRef, NgZone, OnDestroy, EventEmitter, OnChanges, DoCheck, SimpleChanges } from '@angular/core';
import PivotGridDataSource, { Options as PivotGridDataSourceOptions } from 'devextreme/ui/pivot_grid/data_source';
import DxPivotGrid from 'devextreme/ui/pivot_grid';
import { DxComponent, DxTemplateHost, NestedOptionHost, IterableDifferHelper, WatcherHelper } from 'devextreme-angular/core';
import * as i0 from "@angular/core";
import * as i1 from "devextreme-angular/ui/nested";
import * as i2 from "devextreme-angular/core";
import * as i3 from "@angular/platform-browser";
/**
 * The PivotGrid is a UI component that allows you to display and analyze multi-dimensional data from a local storage or an OLAP cube.

 */
export declare class DxPivotGridComponent extends DxComponent implements OnDestroy, OnChanges, DoCheck {
    private _watcherHelper;
    private _idh;
    instance: DxPivotGrid;
    /**
     * Allows users to expand/collapse all header items within the same header level. Ignored if the PivotGridDataSource&apos;s paginate property is true.
    
     */
    get allowExpandAll(): boolean;
    set allowExpandAll(value: boolean);
    /**
     * Allows a user to filter fields by selecting or deselecting values in the popup menu.
    
     */
    get allowFiltering(): boolean;
    set allowFiltering(value: boolean);
    /**
     * Allows an end user to change sorting properties.
    
     */
    get allowSorting(): boolean;
    set allowSorting(value: boolean);
    /**
     * Allows users to sort the pivot grid by summary values instead of field values. Ignored if the PivotGridDataSource&apos;s paginate property is true.
    
     */
    get allowSortingBySummary(): boolean;
    set allowSortingBySummary(value: boolean);
    /**
     * Specifies the area to which data field headers must belong.
    
     */
    get dataFieldArea(): string;
    set dataFieldArea(value: string);
    /**
     * Binds the UI component to data.
    
     */
    get dataSource(): PivotGridDataSource | PivotGridDataSourceOptions | null | Array<any>;
    set dataSource(value: PivotGridDataSource | PivotGridDataSourceOptions | null | Array<any>);
    /**
     * Specifies whether the UI component responds to user interaction.
    
     */
    get disabled(): boolean;
    set disabled(value: boolean);
    /**
     * Specifies the global attributes to be attached to the UI component&apos;s container element.
    
     */
    get elementAttr(): any;
    set elementAttr(value: any);
    /**
     * Specifies whether HTML tags are displayed as plain text or applied to cell values.
    
     */
    get encodeHtml(): boolean;
    set encodeHtml(value: boolean);
    /**
     * Configures client-side exporting.
    
     */
    get export(): {
        enabled?: boolean;
        fileName?: string;
        ignoreExcelErrors?: boolean;
        proxyUrl?: string | undefined;
    };
    set export(value: {
        enabled?: boolean;
        fileName?: string;
        ignoreExcelErrors?: boolean;
        proxyUrl?: string | undefined;
    });
    /**
     * The Field Chooser configuration properties.
    
     */
    get fieldChooser(): {
        allowSearch?: boolean;
        applyChangesMode?: string;
        enabled?: boolean;
        height?: number;
        layout?: number | string;
        searchTimeout?: number;
        texts?: {
            allFields?: string;
            columnFields?: string;
            dataFields?: string;
            filterFields?: string;
            rowFields?: string;
        };
        title?: string;
        width?: number;
    };
    set fieldChooser(value: {
        allowSearch?: boolean;
        applyChangesMode?: string;
        enabled?: boolean;
        height?: number;
        layout?: number | string;
        searchTimeout?: number;
        texts?: {
            allFields?: string;
            columnFields?: string;
            dataFields?: string;
            filterFields?: string;
            rowFields?: string;
        };
        title?: string;
        width?: number;
    });
    /**
     * Configures the field panel.
    
     */
    get fieldPanel(): {
        allowFieldDragging?: boolean;
        showColumnFields?: boolean;
        showDataFields?: boolean;
        showFilterFields?: boolean;
        showRowFields?: boolean;
        texts?: {
            columnFieldArea?: string;
            dataFieldArea?: string;
            filterFieldArea?: string;
            rowFieldArea?: string;
        };
        visible?: boolean;
    };
    set fieldPanel(value: {
        allowFieldDragging?: boolean;
        showColumnFields?: boolean;
        showDataFields?: boolean;
        showFilterFields?: boolean;
        showRowFields?: boolean;
        texts?: {
            columnFieldArea?: string;
            dataFieldArea?: string;
            filterFieldArea?: string;
            rowFieldArea?: string;
        };
        visible?: boolean;
    });
    /**
     * Configures the header filter feature.
    
     */
    get headerFilter(): {
        allowSearch?: boolean;
        height?: number;
        searchTimeout?: number;
        showRelevantValues?: boolean;
        texts?: {
            cancel?: string;
            emptyValue?: string;
            ok?: string;
        };
        width?: number;
    };
    set headerFilter(value: {
        allowSearch?: boolean;
        height?: number;
        searchTimeout?: number;
        showRelevantValues?: boolean;
        texts?: {
            cancel?: string;
            emptyValue?: string;
            ok?: string;
        };
        width?: number;
    });
    /**
     * Specifies the UI component&apos;s height.
    
     */
    get height(): number | Function | string | undefined;
    set height(value: number | Function | string | undefined);
    /**
     * Specifies whether or not to hide rows and columns with no data.
    
     */
    get hideEmptySummaryCells(): boolean;
    set hideEmptySummaryCells(value: boolean);
    /**
     * Specifies text for a hint that appears when a user pauses on the UI component.
    
     */
    get hint(): string | undefined;
    set hint(value: string | undefined);
    /**
     * Specifies properties configuring the load panel.
    
     */
    get loadPanel(): {
        enabled?: boolean;
        height?: number;
        indicatorSrc?: string;
        shading?: boolean;
        shadingColor?: string;
        showIndicator?: boolean;
        showPane?: boolean;
        text?: string;
        width?: number;
    };
    set loadPanel(value: {
        enabled?: boolean;
        height?: number;
        indicatorSrc?: string;
        shading?: boolean;
        shadingColor?: string;
        showIndicator?: boolean;
        showPane?: boolean;
        text?: string;
        width?: number;
    });
    /**
     * Specifies the layout of items in the row header.
    
     */
    get rowHeaderLayout(): string;
    set rowHeaderLayout(value: string);
    /**
     * Switches the UI component to a right-to-left representation.
    
     */
    get rtlEnabled(): boolean;
    set rtlEnabled(value: boolean);
    /**
     * A configuration object specifying scrolling properties.
    
     */
    get scrolling(): {
        mode?: string;
        useNative?: boolean | string;
    };
    set scrolling(value: {
        mode?: string;
        useNative?: boolean | string;
    });
    /**
     * Specifies whether the outer borders of the grid are visible or not.
    
     */
    get showBorders(): boolean;
    set showBorders(value: boolean);
    /**
     * Specifies whether to display the Grand Total column.
    
     */
    get showColumnGrandTotals(): boolean;
    set showColumnGrandTotals(value: boolean);
    /**
     * Specifies whether to display the Total columns.
    
     */
    get showColumnTotals(): boolean;
    set showColumnTotals(value: boolean);
    /**
     * Specifies whether to display the Grand Total row.
    
     */
    get showRowGrandTotals(): boolean;
    set showRowGrandTotals(value: boolean);
    /**
     * Specifies whether to display the Total rows. Applies only if rowHeaderLayout is &apos;standard&apos;.
    
     */
    get showRowTotals(): boolean;
    set showRowTotals(value: boolean);
    /**
     * Specifies where to show the total rows or columns.
    
     */
    get showTotalsPrior(): string;
    set showTotalsPrior(value: string);
    /**
     * A configuration object specifying properties related to state storing.
    
     */
    get stateStoring(): {
        customLoad?: Function;
        customSave?: Function;
        enabled?: boolean;
        savingTimeout?: number;
        storageKey?: string;
        type?: string;
    };
    set stateStoring(value: {
        customLoad?: Function;
        customSave?: Function;
        enabled?: boolean;
        savingTimeout?: number;
        storageKey?: string;
        type?: string;
    });
    /**
     * Specifies the number of the element when the Tab key is used for navigating.
    
     */
    get tabIndex(): number;
    set tabIndex(value: number);
    /**
     * Strings that can be changed or localized in the PivotGrid UI component.
    
     */
    get texts(): {
        collapseAll?: string;
        dataNotAvailable?: string;
        expandAll?: string;
        exportToExcel?: string;
        grandTotal?: string;
        noData?: string;
        removeAllSorting?: string;
        showFieldChooser?: string;
        sortColumnBySummary?: string;
        sortRowBySummary?: string;
        total?: string;
    };
    set texts(value: {
        collapseAll?: string;
        dataNotAvailable?: string;
        expandAll?: string;
        exportToExcel?: string;
        grandTotal?: string;
        noData?: string;
        removeAllSorting?: string;
        showFieldChooser?: string;
        sortColumnBySummary?: string;
        sortRowBySummary?: string;
        total?: string;
    });
    /**
     * Specifies whether the UI component is visible.
    
     */
    get visible(): boolean;
    set visible(value: boolean);
    /**
     * Specifies the UI component&apos;s width.
    
     */
    get width(): number | Function | string | undefined;
    set width(value: number | Function | string | undefined);
    /**
     * Specifies whether long text in header items should be wrapped.
    
     */
    get wordWrapEnabled(): boolean;
    set wordWrapEnabled(value: boolean);
    /**
    
     * A function that is executed when a pivot grid cell is clicked or tapped.
    
    
     */
    onCellClick: EventEmitter<any>;
    /**
    
     * A function that is executed after a pivot grid cell is created.
    
    
     */
    onCellPrepared: EventEmitter<any>;
    /**
    
     * A function that is executed when the UI component is rendered and each time the component is repainted.
    
    
     */
    onContentReady: EventEmitter<any>;
    /**
    
     * A function that is executed before the context menu is rendered.
    
    
     */
    onContextMenuPreparing: EventEmitter<any>;
    /**
    
     * A function that is executed before the UI component is disposed of.
    
    
     */
    onDisposing: EventEmitter<any>;
    /**
    
     * A function that is executed after data is exported.
    
     * @deprecated Since v20.2, we recommend ExcelJS-based export which does not use this property.
    
    
     */
    onExported: EventEmitter<any>;
    /**
    
     * A function that is executed before data is exported.
    
    
     */
    onExporting: EventEmitter<any>;
    /**
    
     * A function that is executed before a file with exported data is saved to the user&apos;s local storage.
    
     * @deprecated Since v20.2, we recommend ExcelJS-based export which does not use this property.
    
    
     */
    onFileSaving: EventEmitter<any>;
    /**
    
     * A function used in JavaScript frameworks to save the UI component instance.
    
    
     */
    onInitialized: EventEmitter<any>;
    /**
    
     * A function that is executed after a UI component property is changed.
    
    
     */
    onOptionChanged: EventEmitter<any>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    allowExpandAllChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    allowFilteringChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    allowSortingChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    allowSortingBySummaryChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    dataFieldAreaChange: EventEmitter<string>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    dataSourceChange: EventEmitter<PivotGridDataSource | PivotGridDataSourceOptions | null | Array<any>>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    disabledChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    elementAttrChange: EventEmitter<any>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    encodeHtmlChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    exportChange: EventEmitter<{
        enabled?: boolean;
        fileName?: string;
        ignoreExcelErrors?: boolean;
        proxyUrl?: string | undefined;
    }>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    fieldChooserChange: EventEmitter<{
        allowSearch?: boolean;
        applyChangesMode?: string;
        enabled?: boolean;
        height?: number;
        layout?: number | string;
        searchTimeout?: number;
        texts?: {
            allFields?: string;
            columnFields?: string;
            dataFields?: string;
            filterFields?: string;
            rowFields?: string;
        };
        title?: string;
        width?: number;
    }>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    fieldPanelChange: EventEmitter<{
        allowFieldDragging?: boolean;
        showColumnFields?: boolean;
        showDataFields?: boolean;
        showFilterFields?: boolean;
        showRowFields?: boolean;
        texts?: {
            columnFieldArea?: string;
            dataFieldArea?: string;
            filterFieldArea?: string;
            rowFieldArea?: string;
        };
        visible?: boolean;
    }>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    headerFilterChange: EventEmitter<{
        allowSearch?: boolean;
        height?: number;
        searchTimeout?: number;
        showRelevantValues?: boolean;
        texts?: {
            cancel?: string;
            emptyValue?: string;
            ok?: string;
        };
        width?: number;
    }>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    heightChange: EventEmitter<number | Function | string | undefined>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    hideEmptySummaryCellsChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    hintChange: EventEmitter<string | undefined>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    loadPanelChange: EventEmitter<{
        enabled?: boolean;
        height?: number;
        indicatorSrc?: string;
        shading?: boolean;
        shadingColor?: string;
        showIndicator?: boolean;
        showPane?: boolean;
        text?: string;
        width?: number;
    }>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    rowHeaderLayoutChange: EventEmitter<string>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    rtlEnabledChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    scrollingChange: EventEmitter<{
        mode?: string;
        useNative?: boolean | string;
    }>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    showBordersChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    showColumnGrandTotalsChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    showColumnTotalsChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    showRowGrandTotalsChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    showRowTotalsChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    showTotalsPriorChange: EventEmitter<string>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    stateStoringChange: EventEmitter<{
        customLoad?: Function;
        customSave?: Function;
        enabled?: boolean;
        savingTimeout?: number;
        storageKey?: string;
        type?: string;
    }>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    tabIndexChange: EventEmitter<number>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    textsChange: EventEmitter<{
        collapseAll?: string;
        dataNotAvailable?: string;
        expandAll?: string;
        exportToExcel?: string;
        grandTotal?: string;
        noData?: string;
        removeAllSorting?: string;
        showFieldChooser?: string;
        sortColumnBySummary?: string;
        sortRowBySummary?: string;
        total?: string;
    }>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    visibleChange: EventEmitter<boolean>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    widthChange: EventEmitter<number | Function | string | undefined>;
    /**
    
     * This member supports the internal infrastructure and is not intended to be used directly from your code.
    
     */
    wordWrapEnabledChange: EventEmitter<boolean>;
    constructor(elementRef: ElementRef, ngZone: NgZone, templateHost: DxTemplateHost, _watcherHelper: WatcherHelper, _idh: IterableDifferHelper, optionHost: NestedOptionHost, transferState: TransferState, platformId: any);
    protected _createInstance(element: any, options: any): DxPivotGrid;
    ngOnDestroy(): void;
    ngOnChanges(changes: SimpleChanges): void;
    setupChanges(prop: string, changes: SimpleChanges): void;
    ngDoCheck(): void;
    _setOption(name: string, value: any): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DxPivotGridComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DxPivotGridComponent, "dx-pivot-grid", never, { "allowExpandAll": "allowExpandAll"; "allowFiltering": "allowFiltering"; "allowSorting": "allowSorting"; "allowSortingBySummary": "allowSortingBySummary"; "dataFieldArea": "dataFieldArea"; "dataSource": "dataSource"; "disabled": "disabled"; "elementAttr": "elementAttr"; "encodeHtml": "encodeHtml"; "export": "export"; "fieldChooser": "fieldChooser"; "fieldPanel": "fieldPanel"; "headerFilter": "headerFilter"; "height": "height"; "hideEmptySummaryCells": "hideEmptySummaryCells"; "hint": "hint"; "loadPanel": "loadPanel"; "rowHeaderLayout": "rowHeaderLayout"; "rtlEnabled": "rtlEnabled"; "scrolling": "scrolling"; "showBorders": "showBorders"; "showColumnGrandTotals": "showColumnGrandTotals"; "showColumnTotals": "showColumnTotals"; "showRowGrandTotals": "showRowGrandTotals"; "showRowTotals": "showRowTotals"; "showTotalsPrior": "showTotalsPrior"; "stateStoring": "stateStoring"; "tabIndex": "tabIndex"; "texts": "texts"; "visible": "visible"; "width": "width"; "wordWrapEnabled": "wordWrapEnabled"; }, { "onCellClick": "onCellClick"; "onCellPrepared": "onCellPrepared"; "onContentReady": "onContentReady"; "onContextMenuPreparing": "onContextMenuPreparing"; "onDisposing": "onDisposing"; "onExported": "onExported"; "onExporting": "onExporting"; "onFileSaving": "onFileSaving"; "onInitialized": "onInitialized"; "onOptionChanged": "onOptionChanged"; "allowExpandAllChange": "allowExpandAllChange"; "allowFilteringChange": "allowFilteringChange"; "allowSortingChange": "allowSortingChange"; "allowSortingBySummaryChange": "allowSortingBySummaryChange"; "dataFieldAreaChange": "dataFieldAreaChange"; "dataSourceChange": "dataSourceChange"; "disabledChange": "disabledChange"; "elementAttrChange": "elementAttrChange"; "encodeHtmlChange": "encodeHtmlChange"; "exportChange": "exportChange"; "fieldChooserChange": "fieldChooserChange"; "fieldPanelChange": "fieldPanelChange"; "headerFilterChange": "headerFilterChange"; "heightChange": "heightChange"; "hideEmptySummaryCellsChange": "hideEmptySummaryCellsChange"; "hintChange": "hintChange"; "loadPanelChange": "loadPanelChange"; "rowHeaderLayoutChange": "rowHeaderLayoutChange"; "rtlEnabledChange": "rtlEnabledChange"; "scrollingChange": "scrollingChange"; "showBordersChange": "showBordersChange"; "showColumnGrandTotalsChange": "showColumnGrandTotalsChange"; "showColumnTotalsChange": "showColumnTotalsChange"; "showRowGrandTotalsChange": "showRowGrandTotalsChange"; "showRowTotalsChange": "showRowTotalsChange"; "showTotalsPriorChange": "showTotalsPriorChange"; "stateStoringChange": "stateStoringChange"; "tabIndexChange": "tabIndexChange"; "textsChange": "textsChange"; "visibleChange": "visibleChange"; "widthChange": "widthChange"; "wordWrapEnabledChange": "wordWrapEnabledChange"; }, never, never>;
}
export declare class DxPivotGridModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<DxPivotGridModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<DxPivotGridModule, [typeof DxPivotGridComponent], [typeof i1.DxoDataSourceModule, typeof i1.DxiFieldModule, typeof i1.DxoFormatModule, typeof i1.DxoHeaderFilterModule, typeof i1.DxoStoreModule, typeof i1.DxoExportModule, typeof i1.DxoFieldChooserModule, typeof i1.DxoTextsModule, typeof i1.DxoFieldPanelModule, typeof i1.DxoLoadPanelModule, typeof i1.DxoScrollingModule, typeof i1.DxoStateStoringModule, typeof i2.DxIntegrationModule, typeof i2.DxTemplateModule, typeof i3.BrowserTransferStateModule], [typeof DxPivotGridComponent, typeof i1.DxoDataSourceModule, typeof i1.DxiFieldModule, typeof i1.DxoFormatModule, typeof i1.DxoHeaderFilterModule, typeof i1.DxoStoreModule, typeof i1.DxoExportModule, typeof i1.DxoFieldChooserModule, typeof i1.DxoTextsModule, typeof i1.DxoFieldPanelModule, typeof i1.DxoLoadPanelModule, typeof i1.DxoScrollingModule, typeof i1.DxoStateStoringModule, typeof i2.DxTemplateModule]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<DxPivotGridModule>;
}
