/// <reference types="node" />
import { Message } from "protobufjs/light";
import IdentityDarc from "./identity-darc";
import IdentityDid from "./identity-did";
import IdentityEd25519 from "./identity-ed25519";
/**
 * Protobuf representation of an identity
 */
export default class IdentityWrapper extends Message<IdentityWrapper> {
    /**
     * @see README#Message classes
     */
    static register(): void;
    /**
     * fromIdentity returns an IdentityWrapper for a given Identity
     */
    static fromIdentity(id: IIdentity): IdentityWrapper;
    /**
     * fromString returns an IdentityWrapper for a given Identity represented as string
     */
    static fromString(idStr: string): IdentityWrapper;
    /**
     * fromEd25519 returns an IdentityWrapper for a given IdentityDarc
     */
    static fromEd25519(id: IdentityEd25519): IdentityWrapper;
    readonly ed25519: IdentityEd25519;
    readonly darc: IdentityDarc;
    readonly did: IdentityDid;
    /**
     * Get the inner identity as bytes
     * @returns the bytes
     */
    toBytes(): Buffer;
    /**
     * Get the string representation of the identity
     * @returns a string of the identity
     */
    toString(): string;
}
/**
 * Identity is an abstract class for all the Darcs's identities
 */
export interface IIdentity {
    /**
     * Returns true if the verification of signature on the sha-256 of msg is
     * successful or false if not.
     * @param msg       the message to verify
     * @param signature the signature to verify
     * @returns true when the signature matches the message, false otherwise
     */
    verify(msg: Buffer, signature: Buffer): boolean;
    /**
     * Get the byte array representation of the public key of the identity
     * @returns the public key as buffer
     */
    toBytes(): Buffer;
    /**
     * Get the string representation of the identity
     * @return a string representation
     */
    toString(): string;
}
