/**
 * Represents a knot in a B-spline knot sequence with its location (abscissa) along the axis of reals and its multiplicity.
 *
 * @description
 * The Knot class encapsulates the concept of a knot in a B-spline knot sequence.
 * The abscissa and/or multiplicity default to Infinity. This is a special value indicating that the abscissa and/or multiplicity
 * is not yet defined since an abscissa value of 0 or a multiplicity of 0 can be regarded as a valid.
 *
 *
 */
export declare class Knot {
    protected _abscissa: number;
    protected _multiplicity: number;
    /**
     * Creates a new knot.
     *
     * @param abscissa - Position value of the knot along the axis of reals (default: Infinity)
     * @param multiplicity - Number of times the knot is repeated (default: 1 when abscissa is not Infinity, otherwise Infinity)
     * @throws {RangeError} If multiplicity is less than 1
     * @throws {RangeError} If abscissa is less than 1
     *
     * @example
     * const knot = new Knot(1.5, 2); // Knot at u=1.5 with multiplicity 2
     * const knot = new Knot(1.5); // Knot at u=1.5 with multiplicity that defaults to 1
     * const knot = new Knot(); // Knot at default value (Infinity) with multiplicity that defaults to Infinity
     */
    constructor(abscissa?: number, multiplicity?: number);
    /**
     * Gets the abscissa (position) value of the knot
     * @returns The abscissa value along the axis of reals
     */
    get abscissa(): number;
    /**
     * Gets the multiplicity (number of repetitions) of the knot
     * @returns The multiplicity value
     */
    get multiplicity(): number;
    /**
     * Sets the abscissa (position) value of the knot
     * @param abscissa - The new abscissa value to set
     * @throws {RangeError} If abscissa equals DEFAULT_KNOT_ABSCISSA_VALUE
     */
    set abscissa(abscissa: number);
    /**
     * Sets the multiplicity (number of repetitions) of the knot
     * @param multiplicity - The new multiplicity value to set
     * @throws {RangeError} If multiplicity is less than 1
     */
    set multiplicity(multiplicity: number);
    /**
     * Increases the knot multiplicity by the specified increment
     * @param increment - The value to increase multiplicity by (default: 1)
     * @throws {RangeError} If increment is less than 1
     */
    incrementMultiplicity(increment?: number): void;
    /**
     * Decreases the knot multiplicity by the specified decrement
     * @param decrement - The value to decrease multiplicity by (default: 1)
     * @throws {RangeError} If decrement is less than 1 or if resulting multiplicity would be less than 1
     */
    decrementMultiplicity(decrement?: number): void;
    /**
     * Throws a RangeError with formatted error message
     * @param functionName - Name of the function where error occurred
     * @param message - The error message to display
     * @throws {RangeError} With formatted error message
     */
    protected throwRangeErrorMessage(functionName: string, message: string): void;
}
//# sourceMappingURL=Knot.d.ts.map