'use strict';

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');
var types_generic_option = require('../../generic/option.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_typedNumber = require('../../generic/typed-number.cjs');
require('../../generic/typed-set.cjs');
require('../../generic/typed-map.cjs');
var types_generic_typedStruct = require('../../generic/typed-struct.cjs');
require('uuid');
require('js-sha256');
var types_generic_withProp = require('../../generic/with-prop.cjs');
var types_offchainSignatures_curveType = require('../curve-type.cjs');
var types_offchainSignatures_params_index = require('../params/index.cjs');
var types_offchainSignatures_publicKeys_ref = require('./ref.cjs');
require('../../../utils/types/iterable.cjs');
require('../../../utils/types/object.cjs');
require('../../../utils/interfaces.cjs');
require('../../../utils/assert.cjs');
require('../../../utils/error.cjs');
require('../../../utils/inheritance.cjs');
require('../../../utils/types/set.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('../../generic/with-props.cjs');
require('../params/value.cjs');
require('../params/id.cjs');
require('../../generic/typed-uuid.cjs');
require('../../generic/with-from-dock-id.cjs');
require('../../did/onchain/typed-did/index.cjs');
require('../../did/onchain/typed-did/did-method-key/did-method-key-public-key.cjs');
require('../../../utils/encoding/base-58-btc.cjs');
require('../../generic/sized.cjs');
require('../../../utils/types/number.cjs');
require('../../generic/with-qualifier.cjs');
require('../../public-keys/public-key.cjs');
require('../../public-keys/public-key-x25519-value.cjs');
require('../../public-keys/public-key-ed25519-value.cjs');
require('../../../vc/crypto/constants.cjs');
require('../../public-keys/public-key-secp256k1-value.cjs');
require('../../public-keys/public-key-sr25519-value.cjs');
require('../../did/onchain/constants.cjs');
require('../../did/onchain/typed-did/signature.cjs');
require('../../did/onchain/typed-did/did-method-key/did-method-key-signature.cjs');
require('../../signatures/signature-value.cjs');
require('../../signatures/signature-ed25519-value.cjs');
require('../../signatures/signature-secp256k1-value.cjs');
require('../../signatures/signature.cjs');
require('../../signatures/signature-sr25519-value.cjs');
require('../../did/onchain/typed-did/dock-did-value.cjs');
require('../../generic/utils.cjs');
require('../../generic/typed-bytes-array.cjs');
require('../../did/onchain/typed-did/cheqd-did.cjs');

class OffchainSignaturePublicKeyValue extends types_generic_typedStruct {
  static Classes = {
    bytes: class Bytes extends types_generic_typedBytes {},
    paramsRef: types_generic_option(types_offchainSignatures_publicKeys_ref.DockOrCheqdOffchainSignatureParamsRef),
    curveType: types_offchainSignatures_curveType.CurveType,
    participantId: types_generic_option(types_generic_typedNumber),
  };

  constructor(
    bytes,
    paramsRef,
    curveType = new types_offchainSignatures_curveType.CurveTypeBls12381(),
    participantId = null,
    ...rest
  ) {
    super(bytes, paramsRef, curveType, participantId, ...rest);
  }
}

class BBSPublicKeyValue extends OffchainSignaturePublicKeyValue {
  static Params = types_offchainSignatures_params_index.BBSParams;
}
class BBSPlusPublicKeyValue extends OffchainSignaturePublicKeyValue {
  static Params = types_offchainSignatures_params_index.BBSPlusParams;
}
class PSPublicKeyValue extends OffchainSignaturePublicKeyValue {
  static Params = types_offchainSignatures_params_index.PSParams;
}
class BBDT16PublicKeyValue extends OffchainSignaturePublicKeyValue {
  static Params = types_offchainSignatures_params_index.BBDT16Params;
}

class DockOffchainSignaturePublicKeyValue extends types_generic_withProp(
  OffchainSignaturePublicKeyValue,
  'paramsRef',
  types_offchainSignatures_publicKeys_ref.DockOffchainSignatureParamsRef,
) {}
class CheqdOffchainSignaturePublicKeyValue extends types_generic_withProp(
  OffchainSignaturePublicKeyValue,
  'paramsRef',
  types_offchainSignatures_publicKeys_ref.CheqdOffchainSignatureParamsRef,
) {}
class CheqdTestnetOffchainSignaturePublicKeyValue extends types_generic_withProp(
  CheqdOffchainSignaturePublicKeyValue,
  'paramsRef',
  types_offchainSignatures_publicKeys_ref.CheqdTestnetOffchainSignatureParamsRef,
) {}
class CheqdMainnetOffchainSignaturePublicKeyValue extends types_generic_withProp(
  CheqdOffchainSignaturePublicKeyValue,
  'paramsRef',
  types_offchainSignatures_publicKeys_ref.CheqdMainnetOffchainSignatureParamsRef,
) {}

exports.BBDT16PublicKeyValue = BBDT16PublicKeyValue;
exports.BBSPlusPublicKeyValue = BBSPlusPublicKeyValue;
exports.BBSPublicKeyValue = BBSPublicKeyValue;
exports.CheqdMainnetOffchainSignaturePublicKeyValue = CheqdMainnetOffchainSignaturePublicKeyValue;
exports.CheqdOffchainSignaturePublicKeyValue = CheqdOffchainSignaturePublicKeyValue;
exports.CheqdTestnetOffchainSignaturePublicKeyValue = CheqdTestnetOffchainSignaturePublicKeyValue;
exports.DockOffchainSignaturePublicKeyValue = DockOffchainSignaturePublicKeyValue;
exports.OffchainSignaturePublicKeyValue = OffchainSignaturePublicKeyValue;
exports.PSPublicKeyValue = PSPublicKeyValue;
//# sourceMappingURL=value.cjs.map
