/**
 * Provides several arithmetic operations (mainly in a circle group) which are
 * called only internally.
 *
 * Note that no functions take `multiple laps' into consideration: i.e. the arc
 * length of the interval [-2pi, 2pi] is not 4pi but 0.
 * @module
 */
export type Vector2 = [number, number];
export type Vector3 = [number, number, number];
export type Matrix33 = [Vector3, Vector3, Vector3];
export declare const TWO_PI: number;
export declare const mod: (dividend: number, divisor: number) => number;
export declare const clamp: (x: number, min: number, max: number) => number;
export declare const cartesianToPolar: (x: number, y: number, perimeter?: number) => Vector2;
export declare const polarToCartesian: (r: number, theta: number, perimeter?: number) => Vector2;
/**
 * Is a counterclockwise linear interpolation from theta1 to theta2 in a
 * circle group. It is guaranteed that the returned value is within the
 * given interval if amount is in [0, 1].
 * @param amount - should be in [0, 1]
 * @param theta1
 * @param theta2
 * @param [perimeter]
 */
export declare const circularLerp: (amount: number, theta1: number, theta2: number, perimeter?: number) => number;
/**
 * Returns the 'difference' of two values in a circle group. The returned value
 * Δ satisfies theta2 + Δ ≡ theta1 and -perimeter/2 <= Δ <= perimeter/2.
 * @param theta1
 * @param theta2
 * @param [perimter]
 */
export declare const circularDelta: (theta1: number, theta2: number, perimeter?: number) => number;
export declare const multMatrixVector: (A: Matrix33, x: Vector3) => Vector3;
export declare const multMatrixMatrix: (A: Matrix33, B: Matrix33) => Matrix33;
//# sourceMappingURL=arithmetic.d.ts.map