"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.Signature = void 0;
/**
 * A container class containing information about a signature.
 *
 * Contains a signature and the keyid uniquely identifying the key used
 * to generate the signature.
 *
 * Provide a `fromJSON` method to create a Signature from a JSON object.
 */
class Signature {
    keyID;
    sig;
    constructor(options) {
        const { keyID, sig } = options;
        this.keyID = keyID;
        this.sig = sig;
    }
    toJSON() {
        return {
            keyid: this.keyID,
            sig: this.sig,
        };
    }
    static fromJSON(data) {
        const { keyid, sig } = data;
        if (typeof keyid !== 'string') {
            throw new TypeError('keyid must be a string');
        }
        if (typeof sig !== 'string') {
            throw new TypeError('sig must be a string');
        }
        return new Signature({
            keyID: keyid,
            sig: sig,
        });
    }
}
exports.Signature = Signature;
