import { Curve } from './curve'; /** * Get the modular result of an operation. * * @param {Curve} curve * @param {bigint} n * @return {bigint} */ export declare const mod: (curve: Curve | bigint, n: bigint) => bigint; /** * Returns the greatest common divisor of a and b. * * @param {bigint} a * @param {bigint} b * @return {{ g: bigint, x: bigint, y: bigint }} */ export declare const eGcd: (a: bigint, b: bigint) => { g: bigint; x: bigint; y: bigint; }; /** * Get the ring of integers modulo n. * * @param {bigint} a * @param {bigint} n * @return {bigint} */ export declare const toZn: (a: bigint, n: bigint) => bigint; /** * Returns the modular inverse. * * @param {bigint} a * @param {bigint} modulo */ export declare const modInverse: (a: bigint, modulo: bigint) => bigint; /** * a + b * * @param {Curve} curve * @param {bigint} a * @param {bigint} b * @return {bigint} */ export declare const add: (curve: Curve, a: bigint, b: bigint) => bigint; /** * a - b * * @param {Curve} curve * @param {bigint} a * @param {bigint} b * @return {bigint} */ export declare const subtract: (curve: Curve, a: bigint, b: bigint) => bigint; /** * a * b * * @param {Curve} curve * @param {bigint} a * @param {bigint} b * @return {bigint} */ export declare const multiply: (curve: Curve, a: bigint, b: bigint) => bigint; /** * a / b * * @param {Curve} curve * @param {bigint} a * @param {bigint} b * @return {bigint} */ export declare const divide: (curve: Curve, a: bigint, b: bigint) => bigint; /** * a ^ b * * @param {Curve} curve * @param {bigint} a * @param {bigint} b * @return {bigint} */ export declare const power: (curve: Curve, a: bigint, b: bigint) => bigint; /** * Get the square roots from a y² value on the curve. * * @param {Curve} curve * @param {bigint} value * @return {[bigint, bigint]} */ export declare const squareRoots: (curve: Curve, value: bigint) => [bigint, bigint]; export declare const random: (curve: Curve) => bigint;