/**
 * Copied from https://jojozhuang.github.io/algorithm/data-structure-fenwick-tree/
 *
 * TODO - test that this actually works
 * TODO - this this with gaps
 *
 * TODO - this will need to support delete
 *
 * TODO - make this 2d
 * https://www.geeksforgeeks.org/two-dimensional-segment-tree-sub-matrix-sum/
 *
 * TODO - add ability to do other operations
 * TODO - make this partially persistent like b+tree https://www.geeksforgeeks.org/persistent-segment-tree-set-1-introduction/
 *
 * TODO - add lazy propagation https://www.geeksforgeeks.org/lazy-propagation-in-segment-tree/
 *
 * References:
 * https://cp-algorithms.com/data_structures/segment_tree.html#compression-of-2d-segment-tree
 */
export declare class SegmentTree {
    private root;
    constructor(arr: number[]);
    private build;
    querySum(start: number, end: number, root?: SegmentTreeNode): number;
    update(index: number, value: number, root?: SegmentTreeNode): void;
}
declare class SegmentTreeNode {
    start: number;
    end: number;
    sum: number;
    left: SegmentTreeNode;
    right: SegmentTreeNode;
    constructor(start: number, end: number);
}
export default SegmentTree;
//# sourceMappingURL=SegmentTree.d.ts.map