import { Buffer } from 'buffer'; import { Curve } from './curve'; /** * A point on an elliptic curve. */ export interface Point { readonly x: bigint; readonly y: bigint; } /** * Add two points together. Returns a new point. * * @param {Curve} curve * @param {Point} left * @param {Point} right * @return {Point} */ export declare const pointAdd: (curve: Curve, left: Point, right: Point) => Point; /** * Doubles the point provided. Returns a new point. * * @param {Curve} curve * @param {Point} point * @return {Point} */ export declare const pointDouble: (curve: Curve, point: Point) => Point; /** * Multiply a point by a bigint or Buffer. If the value is `1`, the same point will be returned. Otherwise, it returns a * new point. * * @param {Curve} curve * @param {Point} point * @param {Buffer | bigint} value * @return {Point} */ export declare const pointMultiply: (curve: Curve, point: Point, value: Buffer | bigint) => Point; /** * Get a point as a SEC1 encoded Buffer. * * @param {Curve} curve * @param {Point} point * @param {boolean} compact * @return {Buffer} */ export declare const toBuffer: (curve: Curve, point: Point, compact?: boolean) => Buffer; /** * Check if two points are equal. * * @param {Point} left * @param {Point} right * @return {boolean} */ export declare const isEqual: (left: Point, right: Point) => boolean; /** * Check if a point is infinite. * * @param {Curve} curve * @param {Point} point * @return {boolean} */ export declare const isInfinite: (curve: Curve, point: Point) => boolean;