import * as Matrix from '../matrix';
import { Point } from '../point';
import { CellBase, CreateFormulaParser } from '../types';
import { PointGraph } from './point-graph';
export declare class Model<Cell extends CellBase> {
    readonly data: Matrix.Matrix<Cell>;
    readonly evaluatedData: Matrix.Matrix<Cell>;
    readonly referenceGraph: PointGraph;
    readonly createFormulaParser: CreateFormulaParser;
    constructor(createFormulaParser: CreateFormulaParser, data: Matrix.Matrix<Cell>, referenceGraph?: PointGraph, evaluatedData?: Matrix.Matrix<Cell>);
}
export declare function updateCellValue<Cell extends CellBase>(model: Model<Cell>, point: Point, cell: Cell): Model<Cell>;
export declare function createReferenceGraph(): PointGraph;
export declare function createEvaluatedData<Cell extends CellBase>(data: Matrix.Matrix<Cell>, referenceGraph: PointGraph): Matrix.Matrix<Cell>;
/** Get the computed value of a formula cell */
export declare function getFormulaComputedValue(): string;
