import type { CellRangeRef, EngineEvent } from '@bilig/protocol';
import type { U32 } from '../runtime-state.js';
import type { DirectFormulaMetricCounts } from './operation-post-recalc-direct-formulas.js';
import type { CreateEngineOperationServiceArgs } from './operation-service-types.js';
export interface OperationMutationEventFinalizerInvalidations {
    readonly invalidatedRanges: CellRangeRef[];
    readonly invalidatedRows: EngineEvent['invalidatedRows'];
    readonly invalidatedColumns: EngineEvent['invalidatedColumns'];
}
export interface FinalizeOperationMutationEventsArgs extends OperationMutationEventFinalizerInvalidations {
    readonly serviceArgs: CreateEngineOperationServiceArgs;
    readonly suppressChangedSet: boolean;
    readonly canComposeDisjointEventChanges: boolean;
    readonly recalculated: U32;
    readonly explicitChangedCount: number;
    readonly changedInputCount: number;
    readonly formulaChangedCount: number;
    readonly compileMs: number;
    readonly didRunRecalc: boolean;
    readonly directFormulaMetrics: DirectFormulaMetricCounts;
    readonly invalidation: EngineEvent['invalidation'];
    readonly hasGeneralEventListeners: boolean;
    readonly hasTrackedEventListeners: boolean;
    readonly hasWatchedCellListeners: boolean;
    readonly shouldMaterializeChangedCells: (changedLength: number) => boolean;
}
export declare function finalizeOperationMutationEvents(request: FinalizeOperationMutationEventsArgs): void;
