/**
 * Gets all common divisors of the provided numbers
 * @param {number} n1 First number to process
 * @param {number} n2 Second number to process
 * @param {string | undefined} [sort] Sort expression as 'asc' or 'desc' - optional
 * @returns {number[]} Common divisors of provided numbers
 */
declare function getCommonDivisors(n1: number, n2: number, sort?: string): number[];
/**
 * Calculates greatest common divisor (gcd) of provided numbers
 * @param {number} n1 First number to process
 * @param {number} n2 Second number to process
 * @returns {number} Greatest common divisor (gcd)
 */
declare function greatestCommonDivisor(n1: number, n2: number): number;
/**
 * Calculates least common multiple (lcm) of provided numbers
 * @param {number} n1 First number to process
 * @param {number} n2 Second number to process
 * @returns {number} Least common multiple (lcm)
 */
declare function leastCommonMultiple(n1: number, n2: number): number;
/**
 * Gets common divisor count of provided numbers
 * @param {number} n1 First number to process
 * @param {number} n2 Second number to process
 * @returns {number} Common divisor number count
 */
declare function countCommonDivisors(n1: number, n2: number): number;
/**
 * Multiplies common divisors of provided numbers
 * @param {number} n1 First number to process
 * @param {number} n2 Second number to process
 * @returns {number} Common divisor multiplication result
 */
declare function multiplyCommonDivisors(n1: number, n2: number): number;
/**
 * Sums up common divisors of provided numbers
 * @param {number} n1 First number to process
 * @param {number} n2 Second number to process
 * @returns {number} Sum of common divisors
 */
declare function sumCommonDivisors(n1: number, n2: number): number;

interface DivisorOptions {
    readonly sort?: string;
    readonly onlyProperDivisors?: boolean;
}

/**
 * Gets all divisors of the provided number
 * @param {number} n Number to process
 * @param {DivisorOptions | undefined} [options] Divisor options - optional
 * @param {string | undefined} [options.sort] Sort expression as 'asc' or 'desc' - optional
 * @param {boolean | undefined} [options.onlyProperDivisors] Indicator for proper divisors - optional
 * @returns {number[]} Divisors of the provided number and options
 */
declare function getDivisors(n: number, options?: DivisorOptions | undefined): number[];
/**
 * Gets divisor count of a number
 * @param {number} n Number to process
 * @param {boolean | undefined} [onlyProperDivisors=false] Indicator for proper divisors - optional
 * @returns {number} Divisor number count
 */
declare function countDivisors(n: number, onlyProperDivisors?: boolean | undefined): number;
/**
 * Multiplies divisors of provided number
 * @param {number} n Number to process
 * @param {boolean | undefined} [onlyProperDivisors=false] Indicator for proper divisors - optional
 * @returns {number} Divisor multiplication result
 */
declare function multiplyDivisors(n: number, onlyProperDivisors?: boolean | undefined): number;
/**
 * Sums up divisors of provided number
 * @param n {number} Number to process
 * @param {boolean | undefined} [onlyProperDivisors=false] Indicator for proper divisors - optional
 * @returns {number} Sum of divisors
 */
declare function sumDivisors(n: number, onlyProperDivisors?: boolean | undefined): number;
/**
 * Gets greatest proper divisor of provided number
 * @param {number} n Number to process
 * @returns {number | null} Greatest proper divisor of provided number - null if provided number is 1
 */
declare function greatestProperDivisor(n: number): number | null;
/**
 * Gets smallest proper divisor of provided number
 * @summary DEPRECATED - Will be removed on first major release.
 * Smallest proper divisor calculation seems needed at first due to lack of knowledge about proper divisors.
 * This method always returns one if number one itself not used as number parameter
 * @param {number} n Number to process
 * @returns {number | null} Smallest proper divisor of provided number - null if provided number is one
 */
declare function smallestProperDivisor(n: number): number | null;

export { countCommonDivisors, countDivisors, getCommonDivisors, getDivisors, greatestCommonDivisor, greatestProperDivisor, leastCommonMultiple, multiplyCommonDivisors, multiplyDivisors, smallestProperDivisor, sumCommonDivisors, sumDivisors };
