import type { DataFieldManager } from '@univerjs-pro/engine-pivot';
import type { Injector } from '@univerjs/core';
import type { IDataFieldDataArray } from './type';
import { FUniver } from '@univerjs/core/facade';
import { FGenericPivotTable } from './f-generic-pivot-table';
/**
 * @ignore
 */
export interface IFUniverSheetsPivotTableEventMixin {
    /**
     * Create a pivot table instance that does not depend on a workbook
     * @param {IDataFieldDataArray} data - The data used to create the pivot table
     * @param {new (...args: unknown[]) => DataFieldManager} [CustomDataFieldManager] - The custom data field manager class. If not passed, the default DataFieldManager will be used
     * @returns {FGenericPivotTable} The generated pivot table instance.
     * @example
     * ```typescript
     * const sourceData = [
     *  ["区域", "省份", "城市", "类别", "商品", "数量", "销售日期"],
     *  ["西部", "河南", "洛阳", "fruit", "葡萄", 38, "2021-06-30"],
     *  ["北部", "辽宁", "沈阳", "fruit", "葡萄", 45, "2023-08-31"]
     * ]
     * const pivot = univerAPI.generatePivotTable(sourceData);
     * pivot.addFieldWithName('数量', 3);
     * const res = pivot.getResultByCalculate();
     * console.log('debugger', pivot, res);
     * ```
     */
    generatePivotTable<T extends DataFieldManager>(data: IDataFieldDataArray, CustomDataFieldManager?: new (...args: unknown[]) => T): FGenericPivotTable;
}
export declare class FUniverSheetsPivotTableEventMixin extends FUniver implements IFUniverSheetsPivotTableEventMixin {
    _initialize(injector: Injector): void;
    private _firePivotTableFieldAddedEvent;
    private _firePivotTableFieldRemovedEvent;
    private _firePivotTableFieldMovedEvent;
    private _firePivotTableFieldCollapsedEvent;
    private _firePivotTableFieldFilterChangedEvent;
    private _firePivotTableFieldSortChangedEvent;
    private _firePivotTableFieldSettingChangedEvent;
    private _firePivotTableValuePositionChangedEvent;
    private _fireAddPivotTableEvent;
    private _fireBeforeAddPivotTableEvent;
    private _firePivotTableRemovedEvent;
    private _fireBeforeMovePivotTableEvent;
    private _fireMovedPivotTableEvent;
    private _fireRenderPivotTableEvent;
    generatePivotTable<T extends DataFieldManager>(data: IDataFieldDataArray, CustomDataFieldManager?: new (...args: unknown[]) => T): FGenericPivotTable;
}
declare module '@univerjs/core/facade' {
    interface FUniver extends IFUniverSheetsPivotTableEventMixin {
    }
}
