/// <reference types="react" />
import { PivotTableProps } from '../../../../props';
export declare const PIVOT_WIDGET_PADDING = 8;
/**
 * Pivot table with pagination.
 *
 * @example
 * (1) Example of PivotTable from the `Sample ECommerce` data model:
 *
 * ```tsx
 * <PivotTable
 *   dataSet={DM.DataSource}
 *   dataOptions={{
 *     rows: [
 *       { column: DM.Category.Category, includeSubTotals: true },
 *       { column: DM.Commerce.AgeRange, includeSubTotals: true },
 *       DM.Commerce.Condition,
 *     ],
 *     columns: [{ column: DM.Commerce.Gender, includeSubTotals: true }],
 *     values: [
 *       {
 *         column: measureFactory.sum(DM.Commerce.Cost, 'Total Cost'),
 *         dataBars: true,
 *         totalsCalculation: 'sum',
 *       },
 *       {
 *         column: measureFactory.sum(DM.Commerce.Revenue, 'Total Revenue'),
 *         totalsCalculation: 'sum',
 *       },
 *     ],
 *     grandTotals: { rows: true, columns: true },
 *   }}
 *   filters={[filterFactory.members(DM.Commerce.Gender, ['Female', 'Male'])]}
 *   styleOptions={{ width: 1000, height: 600, rowsPerPage: 50 }}
 * />
 * ```
 * <img src="media://pivot-example-1.png" width="800px" />
 *
 * (2) Example of PivotTable with the predefined sorting configuration:
 * - Sort "Condition" row by its values in Ascending order. This is equivalent to users clicking on the "Condition" row heading and hit Sort Ascending (A-Z)
 * - Sort "Category" row by "Total Cost" values under the "columns" values of "Female" (for Gender) and "0-18" (for AgeRange) in Descending order.
 * This is equivalent to users clicking on the "Total Cost" value heading under "Female" (for Gender) and "0-18" (for AgeRange) and sort "Category (Subtotals)" in Descending (9-1)
 *
 * ```tsx
 * <PivotTable
 *   dataSet={DM.DataSource}
 *   dataOptions={{
 *     rows: [
 *       {
 *         column: DM.Category.Category,
 *         includeSubTotals: true,
 *         sortType: {
 *           direction: 'sortDesc',
 *           by: {
 *             valuesIndex: 0,
 *             columnsMembersPath: ['Female', '0-18']
 *           }
 *         }
 *       },
 *       {
 *         column: DM.Commerce.Condition,
 *         sortType: {
 *           direction: 'sortAsc'
 *         }
 *       },
 *     ],
 *     columns: [
 *       DM.Commerce.Gender,
 *       DM.Commerce.AgeRange
 *     ],
 *     values: [
 *       measureFactory.sum(DM.Commerce.Cost, 'Total Cost'),
 *       measureFactory.sum(DM.Commerce.Quantity, 'Total Quantity'),
 *     ],
 *   }}
 * />
 * ```
 *
 * <img src="media://pivot-sorting-example-1.png" width="800px" />
 *
 * (3) Example of PivotTable with auto content width enabled:
 * When {@link PivotTableStyleOptions.isAutoContentWidth | `isAutoContentWidth: true`} is set, all vertical columns will be resized to fit within the component width without requiring horizontal scroll.
 *
 * ```tsx
 * <PivotTable
 *   dataSet={DM.DataSource}
 *   dataOptions={{
 *     rows: [DM.Category.Category],
 *     columns: [DM.Commerce.Gender],
 *     values: [
 *       measureFactory.sum(DM.Commerce.Cost, 'Total Cost'),
 *       measureFactory.sum(DM.Commerce.Revenue, 'Total Revenue'),
 *     ],
 *   }}
 *   styleOptions={{
 *     width: 800,
 *     height: 600,
 *     isAutoContentWidth: true,
 *     rowsPerPage: 50,
 *   }}
 * />
 * ```
 * <img src="media://pivot-auto-content-width-true.png" width="800px" />
 *
 * @remarks
 * Configuration options can also be applied within the scope of a `<SisenseContextProvider>` to control the default behavior of PivotTable, by changing available settings within `appConfig.chartConfig.tabular.*`
 *
 * Follow the link to {@link AppConfig} for more details on the available settings.
 *
 * @param props - Pivot Table properties
 * @returns Pivot Table component
 * @group Data Grids
 */
export declare const PivotTable: import("react").FunctionComponent<PivotTableProps>;
