import type { CompiledFormula } from '@bilig/formula';
export interface FormulaBindingSheetIndex {
    readonly clear: () => void;
    readonly trackFormula: (cellIndex: number, ownerSheetName: string, compiled: Pick<CompiledFormula, 'deps' | 'parsedDeps'>) => void;
    readonly trackFormulaOwnerRun: (ownerSheetName: string, cellIndices: readonly number[] | Uint32Array) => void;
    readonly untrackFormula: (cellIndex: number, ownerSheetName: string | undefined, compiled: Pick<CompiledFormula, 'deps' | 'parsedDeps'> | undefined) => void;
    readonly moveSheetName: (oldSheetName: string, newSheetName: string) => {
        readonly owners: ReadonlySet<number>;
        readonly references: ReadonlySet<number>;
    };
    readonly moveOwnerSheetName: (oldSheetName: string, newSheetName: string) => ReadonlySet<number>;
    readonly moveReferenceSheetName: (oldSheetName: string, newSheetName: string) => ReadonlySet<number>;
    readonly getOwnedBySheetSet: (sheetName: string) => Set<number> | undefined;
    readonly getReferencingSheetSet: (sheetName: string) => Set<number> | undefined;
    readonly appendOwner: (sheetName: string, cellIndex: number) => void;
    readonly removeOwner: (sheetName: string, cellIndex: number) => void;
    readonly appendReference: (sheetName: string, cellIndex: number) => void;
    readonly removeReference: (sheetName: string, cellIndex: number) => void;
    readonly collectOwnedBySheet: (sheetName: string) => number[];
    readonly collectReferencingSheet: (sheetName: string) => number[];
}
export declare function createFormulaBindingSheetIndex(): FormulaBindingSheetIndex;
