'use strict';

var utils_inheritance = require('../../utils/inheritance.cjs');
require('../generic/typed-enum.cjs');
var types_generic_typedBytes = require('../generic/typed-bytes.cjs');
require('../generic/typed-string.cjs');
require('../generic/typed-array.cjs');
require('../generic/typed-tuple.cjs');
require('../generic/typed-null.cjs');
require('../../utils/types/array.cjs');
require('crypto');
require('bs58');
require('multiformats/bases/base58');
require('varint');
require('../../utils/encoding/ss-58.cjs');
var types_generic_sized = require('../generic/sized.cjs');
require('../generic/typed-number.cjs');
require('../generic/typed-set.cjs');
require('../generic/typed-map.cjs');
require('../generic/typed-struct.cjs');
require('uuid');
require('js-sha256');
require('../../utils/types/object.cjs');
require('../../utils/types/iterable.cjs');
require('../../utils/types/set.cjs');
require('../../utils/interfaces.cjs');
require('../../utils/assert.cjs');
require('../../utils/error.cjs');
require('../generic/with-base.cjs');
require('../../utils/types/bytes.cjs');
require('../../utils/types/string.cjs');
require('../generic/with-catch-null.cjs');
require('../generic/with-eq.cjs');
require('../generic/any-of.cjs');
require('../generic/with-from.cjs');
require('../generic/with-from-json-bytes.cjs');
require('blake2b');
require('../generic/create-placeholder.cjs');
require('../../utils/types/number.cjs');

/** Class representing a Signature. This export class should always be extended (abstract export class in some languages) */
var SignatureValue = utils_inheritance.withExtendedStaticProperties(
  ['PublicKey'],
  class SignatureValue extends types_generic_sized(types_generic_typedBytes) {
    /**
     * Public key associated with the signature.
     * @type {typeof PublicKey}
     */
    static PublicKey;

    static get Type() {
      return this.PublicKey.Type;
    }

    /**
     * Returns the size of the underlying signature.
     */
    get size() {
      return this.constructor.Size;
    }
  },
);

module.exports = SignatureValue;
//# sourceMappingURL=signature-value.cjs.map
