import { Signature } from '@noble/secp256k1'; import { FiniteField } from './ff'; export declare class ECCurve { static ff: FiniteField; static ZERO: Uint8Array; static validate: (point: Uint8Array) => boolean; static baseMul: (r: Uint8Array) => Uint8Array; static negPoint: (point: Uint8Array) => Uint8Array; static addPoint: (pointA: Uint8Array, pointB: Uint8Array) => Uint8Array; static mulScalar: (point: Uint8Array, scalar: Uint8Array) => Uint8Array; static getDerivedKey: (privateKey: Uint8Array) => Uint8Array; static getPublicKey: (privateKey: Uint8Array, derived?: boolean) => Uint8Array; } export declare class ECTSS { static ff: FiniteField; static signatureLength: number; static randomnessLength: number; static privateKeyLength: number; static publicKeyLength: number; static finalizeSig: (sig: Signature) => Uint8Array; static recoveryBit: (R: Uint8Array, sig: Signature) => number; static shareRandomness: (t: number, n: number, indice: Uint8Array[], seed?: Uint8Array) => { shares: Uint8Array[]; R: Uint8Array; r: Uint8Array; zkp: Uint8Array[]; }; static addSig: (sigs: Uint8Array[], r: Uint8Array) => [Uint8Array, number]; static sign: (h: Uint8Array, R: Uint8Array, x: Uint8Array, derivedKey: Uint8Array) => Uint8Array; static verify: (h: Uint8Array, R: Uint8Array, index: Uint8Array, sig: Uint8Array, pzkp: Uint8Array[], xzkp: Uint8Array[]) => boolean; }