import type { CellAddress, CellValue } from './base'; export interface IFormulaCell { sheet: string; address: CellAddress; formula: string; value: CellValue; dependencies: CellAddress[]; error?: string; } export interface FormulaCell { sheet: string; row: number; col: number; } export interface IFormulaResult { value: CellValue; error?: string; } export interface FormulaResult { value: any; error?: string | any; } export interface IFormulaFunction { name: string; description: string; params: Array<{ name: string; description: string; optional?: boolean; }>; execute: (...args: any[]) => CellValue; } export interface IFormulaManagerOptions { enabled: boolean; customFunctions?: Record; maxRecursionDepth?: number; cacheResults?: boolean; } export interface IFormulaManager { exportFormulas: (sheetKey: string) => Record; isCellFormula: (cell: { sheet: string; row: number; col: number; }) => boolean; getCellFormula: (cell: { sheet: string; row: number; col: number; }) => string | undefined; setCellContent: (cell: { sheet: string; row: number; col: number; }, value: string) => void; }