import { HexEncodedString } from '../utils';
/**
 * All of the signature types.
 */
declare enum SignatureType {
    /**
     * An Ed25519 signature.
     */
    Ed25519 = 0
}
/**
 * The base class for signatures.
 */
declare abstract class Signature {
    /**
     * The type of signature.
     */
    readonly type: SignatureType;
    /**
     * @param type The type of signature.
     */
    constructor(type: SignatureType);
}
/**
 * An Ed25519 signature.
 */
declare class Ed25519Signature extends Signature {
    /**
     * The public key.
     */
    readonly publicKey: HexEncodedString;
    /**
     * The signature.
     */
    readonly signature: HexEncodedString;
    /**
     * @param publicKey A Ed25519 public key as hex-encoded string.
     * @param signature A Ed25519 signature as hex-encoded string.
     */
    constructor(publicKey: HexEncodedString, signature: HexEncodedString);
}
declare const SignatureDiscriminator: {
    property: string;
    subTypes: {
        value: typeof Ed25519Signature;
        name: any;
    }[];
};
export { SignatureDiscriminator, SignatureType, Ed25519Signature, Signature };
