/*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */ import { AffinePoint, BasicCurve, Group, GroupConstructor } from './curve.js'; import { FHash, Hex } from './utils.js'; export type CurveType = BasicCurve & { a: bigint; d: bigint; hash: FHash; randomBytes: (bytesLength?: number) => Uint8Array; adjustScalarBytes?: (bytes: Uint8Array) => Uint8Array; domain?: (data: Uint8Array, ctx: Uint8Array, phflag: boolean) => Uint8Array; uvRatio?: (u: bigint, v: bigint) => { isValid: boolean; value: bigint; }; prehash?: FHash; mapToCurve?: (scalar: bigint[]) => AffinePoint; }; declare function validateOpts(curve: CurveType): Readonly<{ readonly nBitLength: number; readonly nByteLength: number; readonly Fp: import("./modular.js").IField; readonly n: bigint; readonly h: bigint; readonly hEff?: bigint; readonly Gx: bigint; readonly Gy: bigint; readonly allowInfinityPoint?: boolean; readonly a: bigint; readonly d: bigint; readonly hash: FHash; readonly randomBytes: (bytesLength?: number) => Uint8Array; readonly adjustScalarBytes?: (bytes: Uint8Array) => Uint8Array; readonly domain?: (data: Uint8Array, ctx: Uint8Array, phflag: boolean) => Uint8Array; readonly uvRatio?: (u: bigint, v: bigint) => { isValid: boolean; value: bigint; }; readonly prehash?: FHash; readonly mapToCurve?: (scalar: bigint[]) => AffinePoint; readonly p: bigint; }>; export interface ExtPointType extends Group { readonly ex: bigint; readonly ey: bigint; readonly ez: bigint; readonly et: bigint; get x(): bigint; get y(): bigint; assertValidity(): void; multiply(scalar: bigint): ExtPointType; multiplyUnsafe(scalar: bigint): ExtPointType; isSmallOrder(): boolean; isTorsionFree(): boolean; clearCofactor(): ExtPointType; toAffine(iz?: bigint): AffinePoint; toRawBytes(isCompressed?: boolean): Uint8Array; toHex(isCompressed?: boolean): string; } export interface ExtPointConstructor extends GroupConstructor { new (x: bigint, y: bigint, z: bigint, t: bigint): ExtPointType; fromAffine(p: AffinePoint): ExtPointType; fromHex(hex: Hex): ExtPointType; fromPrivateKey(privateKey: Hex): ExtPointType; } export type CurveFn = { CURVE: ReturnType; getPublicKey: (privateKey: Hex) => Uint8Array; sign: (message: Hex, privateKey: Hex, options?: { context?: Hex; }) => Uint8Array; verify: (sig: Hex, message: Hex, publicKey: Hex, options?: { context?: Hex; zip215: boolean; }) => boolean; ExtendedPoint: ExtPointConstructor; utils: { randomPrivateKey: () => Uint8Array; getExtendedPublicKey: (key: Hex) => { head: Uint8Array; prefix: Uint8Array; scalar: bigint; point: ExtPointType; pointBytes: Uint8Array; }; }; }; export declare function twistedEdwards(curveDef: CurveType): CurveFn; export {}; //# sourceMappingURL=edwards.d.ts.map