import type { FormulaInstanceSnapshot, FormulaInstanceTable } from '../../formula/formula-instance-table.js';
import type { FormulaOwnerPosition } from './formula-binding-service-types.js';
export interface FormulaBindingInstanceTableRebuildController {
    readonly deferRebuildNow: () => void;
    readonly clearRebuildNow: () => void;
    readonly recordIfMissingOrRebuildingNow: (cellIndex: number, source: string, templateId: number | undefined, ownerPosition?: FormulaOwnerPosition) => void;
    readonly upsertFreshFormulaInstancesNow: (records: readonly FormulaInstanceSnapshot[]) => void;
    readonly hydrateFreshFormulaInstancesNow: (records: readonly FormulaInstanceSnapshot[]) => void;
    readonly exportFormulaInstancesNow: () => FormulaInstanceSnapshot[];
}
export declare function createFormulaBindingInstanceTableRebuildController(args: {
    readonly formulaInstances: FormulaInstanceTable;
    readonly rebuildFormulaInstancesNow: () => void;
    readonly recordFormulaInstanceNow: (cellIndex: number, source: string, templateId: number | undefined, ownerPosition?: FormulaOwnerPosition) => void;
}): FormulaBindingInstanceTableRebuildController;
