import type { IPivotChartCalculationResult, IPivotChartRuntimeState } from '@univerjs-pro/pivot-chart';
import type { ISheetsPivotChartModelChange } from '@univerjs-pro/sheets-pivot-chart';
import type { IEventBase } from '@univerjs/core/facade';
import { FEventName } from '@univerjs/core/facade';
/** Common identity delivered by PivotChart lifecycle events. */
export interface IPivotChartEventParams extends IEventBase {
    unitId: string;
    subUnitId: string;
    pivotChartId: string;
}
/** PivotChart definition change event parameters. */
export interface IPivotChartChangedEventParams extends IPivotChartEventParams {
    /** Identifies whether the persisted definition or Sheet Drawing changed. */
    kind: 'definition' | 'drawing';
    /** Present when {@link kind} is `definition`. */
    change?: ISheetsPivotChartModelChange;
}
/** PivotChart calculation state event parameters. */
export interface IPivotChartDataStateChangedEventParams extends IPivotChartEventParams {
    state: IPivotChartRuntimeState;
}
/** PivotChart completed-render data event parameters. */
export interface IPivotChartRenderedEventParams extends IPivotChartEventParams {
    result: IPivotChartCalculationResult;
}
/** @ignore */
interface IFSheetsPivotChartEventNameMixin {
    readonly PivotChartAdded: 'PivotChartAdded';
    readonly PivotChartRemoved: 'PivotChartRemoved';
    readonly PivotChartChanged: 'PivotChartChanged';
    readonly PivotChartRendered: 'PivotChartRendered';
    readonly PivotChartDataStateChanged: 'PivotChartDataStateChanged';
}
/** @ignore */
interface ISheetsPivotChartEventParamConfig {
    PivotChartAdded: IPivotChartEventParams;
    PivotChartRemoved: IPivotChartEventParams;
    PivotChartChanged: IPivotChartChangedEventParams;
    PivotChartRendered: IPivotChartRenderedEventParams;
    PivotChartDataStateChanged: IPivotChartDataStateChangedEventParams;
}
/** @ignore */
export declare class FSheetsPivotChartEventNameMixin extends FEventName implements IFSheetsPivotChartEventNameMixin {
    get PivotChartAdded(): 'PivotChartAdded';
    get PivotChartRemoved(): 'PivotChartRemoved';
    get PivotChartChanged(): 'PivotChartChanged';
    get PivotChartRendered(): 'PivotChartRendered';
    get PivotChartDataStateChanged(): 'PivotChartDataStateChanged';
}
declare module '@univerjs/core/facade' {
    interface FEventName extends IFSheetsPivotChartEventNameMixin {
    }
    interface IEventParamConfig extends ISheetsPivotChartEventParamConfig {
    }
}
export {};
