/**
 * `BandedSystem` is a class with static methods for solving banded linear systems, such as in computing
 * Bspline poles for pass-through points
 * @internal
 */
export declare class BandedSystem {
    /** apply LU decomposition to a banded system */
    static decomposeLU(numRow: number, bw: number, /* band width */ data: Float64Array): boolean;
    /**
     *
     * @param sum evolving sum.  sum.length
     * @param source data being added
     * @param sourceRow row in source.  Plain offset is sourceRow * sum.length
     * @param scale scale factor to apply.
     */
    private static arrayAddScaledBlock;
    private static blockAssignBlockMinusArray;
    private static blockSumOfScaledBlockScaledArray;
    /**
     * Solve a linear system A*X=B where
     * * A is nominally an `numRow*numRow` matrix, but is stored in banded row-major form
     * * The band storage is `bw` numbers per row, with the middle value being the diagonal of that row.
     *    * Hence rows near top and bottom have band values `outside` the matrix.
     * * The right hand side is an `numRow*numRHS` matrix in row-major order.
     * @param numRow number of rows (and columns) of the nominal full matrix.
     * @param bw total bandwidth (diagonal + equal number of values to left and right)
     * @param matrix the banded matrix, as packed row-major
     * @param numRHS the number of right hand sides.
     * @param rhs the right hand sides
     */
    static solveBandedSystemMultipleRHS(numRow: number, bw: number, /* band width */ matrix: Float64Array, numRHS: number, // number of components in each RHS row.
    rhs: Float64Array): Float64Array | undefined;
    /**
     * Multiply a banded numRow*numRow matrix times a full numRow*numRHS, return as new matrix
     */
    static multiplyBandedTimesFull(numRow: number, bw: number, /* band width */ bandedMatrix: Float64Array, numRHS: number, // number of components in each RHS row.
    rhs: Float64Array): Float64Array;
}
//# sourceMappingURL=BandedSystem.d.ts.map