import * as React from 'react';
import { IgrPivotConfiguration } from "./igr-pivot-configuration";
import { IgrPivotUISettings } from "./igr-pivot-ui-settings";
import { IgrDimensionsChangeEventArgs } from "./igr-dimensions-change-event-args";
import { IgrPivotConfigurationChangedEventArgs } from "./igr-pivot-configuration-changed-event-args";
import { IgrPivotDimensionEventArgs } from "./igr-pivot-dimension-event-args";
import { IgrPivotValueEventArgs } from "./igr-pivot-value-event-args";
import { IgrSortingExpressionEventArgs } from "./igr-sorting-expression-event-args";
import { IgrValuesChangeEventArgs } from "./igr-values-change-event-args";
import { IgrColumn } from "./igr-column";
import { IgrPivotDimension } from "./igr-pivot-dimension";
import { PivotDimensionType } from "./PivotDimensionType";
import { IgrPivotValue } from "./igr-pivot-value";
import { SortingDirection } from "./SortingDirection";
import { IgrFilteringExpressionsTreeOrFilteringOperation } from "./igr-filtering-expressions-tree-or-filtering-operation";
import { IgrGridBaseDirective, IIgrGridBaseDirectiveProps } from "./igr-grid-base-directive";
import { PivotGrid } from "./PivotGrid";
import { IgrSortingExpression } from "./igr-sorting-expression";
import { IgrPivotGridValueTemplateContext } from "./igr-pivot-grid-value-template-context";
import { IgrColumnTemplateContext } from "./igr-column-template-context";
export declare class IgrPivotGrid extends IgrGridBaseDirective<IIgrPivotGridProps & Omit<React.HTMLAttributes<HTMLElement>, keyof IIgrPivotGridProps>> {
    protected createImplementation(): PivotGrid;
    /**
                                 * @hidden
                                 */
    get i(): PivotGrid;
    constructor(props: IIgrPivotGridProps & Omit<React.HTMLAttributes<HTMLElement>, keyof IIgrPivotGridProps>);
    componentDidMount(): void;
    render(): React.DetailedReactHTMLElement<any, HTMLElement>;
    protected _elRef: HTMLElement;
    protected _getMainRef(ref: any): void;
    /**
     * Gets the sorting expressions generated for the dimensions.
     * @example
     * ```typescript
     * const expressions = this.grid.dimensionsSortingExpressions;
     * ```
    */
    get dimensionsSortingExpressions(): IgrSortingExpression[];
    private _valueChipTemplate;
    private _valueChipTemplateAdapter;
    get valueChipTemplate(): React.FunctionComponent<{
        dataContext: IgrPivotGridValueTemplateContext;
    }> | React.Component<{
        dataContext: IgrPivotGridValueTemplateContext;
    }>;
    set valueChipTemplate(v: React.FunctionComponent<{
        dataContext: IgrPivotGridValueTemplateContext;
    }> | React.Component<{
        dataContext: IgrPivotGridValueTemplateContext;
    }>);
    private _rowDimensionHeaderTemplate;
    private _rowDimensionHeaderTemplateAdapter;
    get rowDimensionHeaderTemplate(): React.FunctionComponent<{
        dataContext: IgrColumnTemplateContext;
    }> | React.Component<{
        dataContext: IgrColumnTemplateContext;
    }>;
    set rowDimensionHeaderTemplate(v: React.FunctionComponent<{
        dataContext: IgrColumnTemplateContext;
    }> | React.Component<{
        dataContext: IgrColumnTemplateContext;
    }>);
    get pivotConfiguration(): IgrPivotConfiguration;
    set pivotConfiguration(v: IgrPivotConfiguration);
    get autoGenerateConfig(): boolean;
    set autoGenerateConfig(v: boolean);
    get pivotUI(): IgrPivotUISettings;
    set pivotUI(v: IgrPivotUISettings);
    get superCompactMode(): boolean;
    set superCompactMode(v: boolean);
    /**
     * Gets/Sets the default expand state for all rows.
    */
    get defaultExpandState(): boolean;
    set defaultExpandState(v: boolean);
    /**
     * Gets the full list of dimensions.
     * @example
     * ```typescript
     * const dimensions = this.grid.allDimensions;
     * ```
    */
    get allDimensions(): IgrPivotDimension[];
    get data(): any;
    set data(v: any);
    private _emptyPivotGridTemplate;
    private _emptyPivotGridTemplateAdapter;
    get emptyPivotGridTemplate(): React.FunctionComponent<{
        dataContext: any;
    }> | React.Component<{
        dataContext: any;
    }>;
    set emptyPivotGridTemplate(v: React.FunctionComponent<{
        dataContext: any;
    }> | React.Component<{
        dataContext: any;
    }>);
    findByName(name: string): any;
    /**
     * Notifies for dimension change.
    
    */
    notifyDimensionChange(regenerateColumns?: boolean): void;
    toggleColumn(col: IgrColumn): void;
    getColumnGroupExpandState(col: IgrColumn): void;
    toggleRowGroup(col: IgrColumn, newState: boolean): void;
    /**
     * Auto-sizes row dimension cells.
     * @remarks
     * Only sizes based on the dimension cells in view.
     * @example
     * ```typescript
     * this.grid.autoSizeRowDimension(dimension);
     * ```
     * dimension The row dimension to size.
    
    * @param dimension  * The row dimension to size.
    */
    autoSizeRowDimension(dimension: IgrPivotDimension): void;
    insertDimensionAt(dimension: IgrPivotDimension, targetCollectionType: PivotDimensionType, index?: number): void;
    moveDimension(dimension: IgrPivotDimension, 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);
     * ```
     * dimension The dimension to be removed.
    
    * @param dimension  * The dimension to be removed.
    */
    removeDimension(dimension: IgrPivotDimension): 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);
     * ```
     * dimension The dimension to be toggled.
    
    * @param dimension  * The dimension to be toggled.
    */
    toggleDimension(dimension: IgrPivotDimension): void;
    insertValueAt(value: IgrPivotValue, index?: number): void;
    moveValue(value: IgrPivotValue, 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);
     * ```
     * value The value to be removed.
    
    * @param value  * The value to be removed.
    */
    removeValue(value: IgrPivotValue): 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);
     * ```
     * value The value to be toggled.
    
    * @param value  * The value to be toggled.
    */
    toggleValue(value: IgrPivotValue): void;
    sortDimension(dimension: IgrPivotDimension, sortDirection: SortingDirection): void;
    filterDimension(dimension: IgrPivotDimension, value: any, conditionOrExpressionTree: IgrFilteringExpressionsTreeOrFilteringOperation): void;
    private _dimensionsChange;
    private _dimensionsChange_wrapped;
    get dimensionsChange(): (s: IgrPivotGrid, e: IgrDimensionsChangeEventArgs) => void;
    set dimensionsChange(ev: (s: IgrPivotGrid, e: IgrDimensionsChangeEventArgs) => void);
    private _pivotConfigurationChange;
    private _pivotConfigurationChange_wrapped;
    get pivotConfigurationChange(): (s: IgrPivotGrid, e: IgrPivotConfigurationChangedEventArgs) => void;
    set pivotConfigurationChange(ev: (s: IgrPivotGrid, e: IgrPivotConfigurationChangedEventArgs) => void);
    private _dimensionInit;
    private _dimensionInit_wrapped;
    get dimensionInit(): (s: IgrPivotGrid, e: IgrPivotDimensionEventArgs) => void;
    set dimensionInit(ev: (s: IgrPivotGrid, e: IgrPivotDimensionEventArgs) => void);
    private _valueInit;
    private _valueInit_wrapped;
    get valueInit(): (s: IgrPivotGrid, e: IgrPivotValueEventArgs) => void;
    set valueInit(ev: (s: IgrPivotGrid, e: IgrPivotValueEventArgs) => void);
    private _dimensionsSortingExpressionsChange;
    private _dimensionsSortingExpressionsChange_wrapped;
    get dimensionsSortingExpressionsChange(): (s: IgrPivotGrid, e: IgrSortingExpressionEventArgs) => void;
    set dimensionsSortingExpressionsChange(ev: (s: IgrPivotGrid, e: IgrSortingExpressionEventArgs) => void);
    private _valuesChange;
    private _valuesChange_wrapped;
    get valuesChange(): (s: IgrPivotGrid, e: IgrValuesChangeEventArgs) => void;
    set valuesChange(ev: (s: IgrPivotGrid, e: IgrValuesChangeEventArgs) => void);
}
export interface IIgrPivotGridProps extends IIgrGridBaseDirectiveProps {
    valueChipTemplate?: React.FunctionComponent<{
        dataContext: IgrPivotGridValueTemplateContext;
    }> | React.Component<{
        dataContext: IgrPivotGridValueTemplateContext;
    }>;
    rowDimensionHeaderTemplate?: React.FunctionComponent<{
        dataContext: IgrColumnTemplateContext;
    }> | React.Component<{
        dataContext: IgrColumnTemplateContext;
    }>;
    pivotConfiguration?: IgrPivotConfiguration;
    autoGenerateConfig?: boolean | string;
    pivotUI?: IgrPivotUISettings;
    superCompactMode?: boolean | string;
    /**
     * Gets/Sets the default expand state for all rows.
    */
    defaultExpandState?: boolean | string;
    data?: any;
    emptyPivotGridTemplate?: React.FunctionComponent<{
        dataContext: any;
    }> | React.Component<{
        dataContext: any;
    }>;
    dimensionsChange?: (s: IgrPivotGrid, e: IgrDimensionsChangeEventArgs) => void;
    pivotConfigurationChange?: (s: IgrPivotGrid, e: IgrPivotConfigurationChangedEventArgs) => void;
    dimensionInit?: (s: IgrPivotGrid, e: IgrPivotDimensionEventArgs) => void;
    valueInit?: (s: IgrPivotGrid, e: IgrPivotValueEventArgs) => void;
    dimensionsSortingExpressionsChange?: (s: IgrPivotGrid, e: IgrSortingExpressionEventArgs) => void;
    valuesChange?: (s: IgrPivotGrid, e: IgrValuesChangeEventArgs) => void;
}
