import { withExtendedStaticProperties } from '../../utils/inheritance.js';
import '../generic/typed-enum.js';
import TypedBytes from '../generic/typed-bytes.js';
import '../generic/typed-string.js';
import '../generic/typed-array.js';
import '../generic/typed-tuple.js';
import '../generic/typed-null.js';
import '../../utils/types/array.js';
import 'crypto';
import 'bs58';
import 'multiformats/bases/base58';
import 'varint';
import '../../utils/encoding/ss-58.js';
import sized from '../generic/sized.js';
import '../generic/typed-number.js';
import '../generic/typed-set.js';
import '../generic/typed-map.js';
import '../generic/typed-struct.js';
import 'uuid';
import 'js-sha256';
import '../../utils/types/object.js';
import '../../utils/types/iterable.js';
import '../../utils/types/set.js';
import '../../utils/interfaces.js';
import '../../utils/assert.js';
import '../../utils/error.js';
import '../generic/with-base.js';
import '../../utils/types/bytes.js';
import '../../utils/types/string.js';
import '../generic/with-catch-null.js';
import '../generic/with-eq.js';
import '../generic/any-of.js';
import '../generic/with-from.js';
import '../generic/with-from-json-bytes.js';
import 'blake2b';
import '../generic/create-placeholder.js';
import '../../utils/types/number.js';

/** Class representing a Signature. This export class should always be extended (abstract export class in some languages) */
var SignatureValue = withExtendedStaticProperties(
  ['PublicKey'],
  class SignatureValue extends sized(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;
    }
  },
);

export { SignatureValue as default };
//# sourceMappingURL=signature-value.js.map
