import { FiniteField } from './ff';
export declare class EdCurve {
    static ff: FiniteField;
    static ZERO: Uint8Array<ArrayBufferLike>;
    static validate: (point: Uint8Array) => boolean;
    static baseMul: (r: Uint8Array) => Uint8Array<ArrayBufferLike>;
    static negPoint: (point: Uint8Array) => Uint8Array<ArrayBufferLike>;
    static addPoint: (pointA: Uint8Array, pointB: Uint8Array) => Uint8Array<ArrayBufferLike>;
    static mulScalar: (point: Uint8Array, scalar: Uint8Array) => Uint8Array<ArrayBufferLike>;
    static getDerivedKey: (privateKey: Uint8Array) => Uint8Array<ArrayBufferLike>;
    static getPublicKey: (privateKey: Uint8Array, derived?: boolean) => Uint8Array<ArrayBufferLike>;
}
export declare class EdTSS {
    static ff: FiniteField;
    static signatureLength: number;
    static privateKeyLength: number;
    static publicKeyLength: number;
    static randomnessLength: number;
    static shareRandomness: (t: number, n: number, indice: Uint8Array[], seed?: Uint8Array) => {
        shares: Uint8Array<ArrayBufferLike>[];
        R: Uint8Array<ArrayBufferLike>;
        r: Uint8Array<ArrayBufferLike>;
        zkp: Uint8Array<ArrayBufferLike>[];
    };
    static addSig: (sigs: Uint8Array[]) => Uint8Array;
    static sign: (msg: Uint8Array, R: Uint8Array, publicKey: Uint8Array, r: Uint8Array, derivedKey: Uint8Array) => Uint8Array<ArrayBufferLike>;
    static verify: (msg: Uint8Array, R: Uint8Array, publicKey: Uint8Array, index: Uint8Array, sig: Uint8Array, pzkp: Uint8Array[], rzkp: Uint8Array[]) => boolean;
}
