declare class ECFieldElementFp {
    q: any;
    x: any;
    constructor(q: any, x: any);
    equals(other: any): any;
    toBigInteger(): any;
    negate(): ECFieldElementFp;
    add(b: any): ECFieldElementFp;
    subtract(b: any): ECFieldElementFp;
    multiply(b: any): ECFieldElementFp;
    square(): ECFieldElementFp;
    divide(b: any): ECFieldElementFp;
    getByteLength(): number;
}
declare class ECPointFp {
    static decodeFrom(curve: any, enc: any): ECPointFp;
    static decodeFromHex(curve: any, encHex: any): ECPointFp;
    curve: any;
    x: any;
    y: any;
    z: any;
    zinv: any;
    constructor(curve: any, x: any, y: any, z?: any);
    getX(): any;
    getY(): any;
    equals(other: any): any;
    isInfinity(): any;
    negate(): ECPointFp;
    add(b: any): any;
    twice(): any;
    multiply(k: any): any;
    multiplyTwo(j: any, x: any, k: any): any;
    getEncoded(compressed: any): any;
    add2D(b: any): any;
    twice2D(): any;
    multiply2D(k: any): any;
    isOnCurve(): any;
    toString(): string;
    /**
     * Validate an elliptic curve point.
     *
     * See SEC 1, section 3.2.2.1: Elliptic Curve Public Key Validation Primitive
     */
    validate(): boolean;
}
declare class ECCurveFp {
    q: any;
    a: any;
    b: any;
    infinity: any;
    constructor(q: any, a: any, b: any);
    getQ(): any;
    getA(): any;
    getB(): any;
    equals(other: any): any;
    getInfinity(): any;
    fromBigInteger(x: any): ECFieldElementFp;
    decodePointHex(s: any): any;
}
export { ECFieldElementFp, ECPointFp, ECCurveFp };
