import { CellCoords, CellRangeCoords } from "@sheetxl/common";
export type PreCalcFunction = (a: number, b: number) => number;
export interface PreCalcFunc {
    key: string;
    agg: PreCalcFunction;
}
export interface CoordValue {
    coord: CellCoords;
    value: number | null;
}
export declare class PreCalcs {
    private _tree;
    constructor(_initialValues: CoordValue[], _preCalcs?: PreCalcFunc[]);
    /**
     * Update the values and precalcs for the define aggregations.
     * If the value is null, it will be treated as a delete.
     * @param values
     */
    updateValues(_values: CoordValue[]): void;
    /**
     * Returns the current pre-calced values for the given ranges.
     *
     * // TODO - currently this will double count because we don't split overlapping ranges.
     * // REVISIT when we implement rect sweep
     * @param ranges
     * @param keys
     * @returns
     */
    queryCalcs(_ranges: CellRangeCoords[], _keys: string[]): Map<string, number>;
}
//# sourceMappingURL=PreCalcs.d.ts.map