import { Vertex } from './vertex'; import type { UnionValue } from '../../../treb-base-types/src/index'; export interface CalculationResult { value: UnionValue; volatile?: boolean; } /** * this is a subset of Graph so we can avoid the circular dependency. */ export interface GraphCallbacks { CalculationCallback: (vertex: SpreadsheetVertexBase) => CalculationResult; SpreadCallback: (vertex: SpreadsheetVertexBase, value: UnionValue) => void; SpillCallback: (vertex: SpreadsheetVertexBase, value: UnionValue) => Vertex[] | void; volatile_list: SpreadsheetVertexBase[]; calculation_list: SpreadsheetVertexBase[]; } export declare abstract class SpreadsheetVertexBase extends Vertex { dirty: boolean; abstract Calculate(graph: GraphCallbacks): void; }