/// <reference types="node" />
import { Point, Scalar } from "@dedis/kyber";
export declare const ed25519: import("@dedis/kyber/curve/edwards25519/curve").default;
/**
 * Convenience class to wrap a linkable ring signature.
 */
export declare class RingSig {
    C0: Scalar;
    S: Scalar[];
    tag: Point;
    constructor(C0: Scalar, S: Scalar[], tag?: Point);
    encode(): Buffer;
}
/**
 * Sign a message using (un)linkable ring signature. This method is ported from the Kyber Golang version
 * available at https://github.com/dedis/kyber/blob/master/sign/anon/sig.go. Please refer to the documentation
 * of the given link for detailed instructions. This port stick to the Go implementation, however the hashing function
 * used here is Blake2xs, whereas Blake2xb is used in the Golang version.
 *
 * @param {Buffer} message - the message to be signed
 * @param {Array} anonymitySet - an array containing the public keys of the group
 * @param [linkScope] - ths link scope used for linkable signature
 * @param {Scalar} privateKey - the private key of the signer
 * @return {RingSig} - the signature
 */
export declare function Sign(message: Buffer, anonymitySet: Point[], linkScope: Buffer, privateKey: Scalar): Promise<RingSig>;
/**
 * Verify the signature of a message  a message using (un)linkable ring signature. This method is ported from
 * the Kyber Golang version available at https://github.com/dedis/kyber/blob/master/sign/anon/sig.go. Please refer
 * to the documentation of the given link for detailed instructions. This port stick to the Go implementation, however
 * the hashing function used here is Blake2xs, whereas Blake2xb is used in the Golang version.
 *
 * @param {Kyber.Curve} suite - the crypto suite used for the sign process
 * @param {Uint8Array} message - the message to be signed
 * @param {Array} anonymitySet - an array containing the public keys of the group
 * @param [linkScope] - ths link scope used for linkable signature
 * @param signatureBuffer - the signature the will be verified
 * @return {SignatureVerification} - contains the property of the verification
 */
export declare function Verify(message: Buffer, anonymitySet: Point[], linkScope: Buffer, signatureBuffer: Buffer): Promise<SignatureVerification>;
export declare class SignatureVerification {
    valid: boolean;
    tag: Point;
    constructor(valid: boolean, tag?: Point);
}
