import '../../generic/typed-enum.js';
import '../../generic/typed-bytes.js';
import '../../generic/typed-string.js';
import '../../generic/typed-array.js';
import TypedTuple from '../../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 '../../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 anyOf from '../../generic/any-of.js';
import { NamespaceDid, DockDidOrDidMethodKey } from '../../did/onchain/typed-did/index.js';
import { DockParamsId, CheqdParamsId } from '../params/id.js';
import { CheqdDLRRef, CheqdTestnetDid, CheqdMainnetDid } from '../../did/onchain/typed-did/cheqd-did.js';
import DockDidValue from '../../did/onchain/typed-did/dock-did-value.js';
import '../../../utils/types/iterable.js';
import '../../../utils/types/object.js';
import '../../../utils/interfaces.js';
import '../../../utils/assert.js';
import '../../../utils/error.js';
import '../../../utils/inheritance.js';
import '../../../utils/types/set.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 'blake2b';
import '../../generic/with-from.js';
import '../../generic/with-from-json-bytes.js';
import '../../generic/create-placeholder.js';
import '../../did/onchain/typed-did/did-method-key/did-method-key-public-key.js';
import '../../../utils/encoding/base-58-btc.js';
import '../../generic/sized.js';
import '../../../utils/types/number.js';
import '../../generic/with-qualifier.js';
import '../../public-keys/public-key.js';
import '../../public-keys/public-key-x25519-value.js';
import '../../public-keys/public-key-ed25519-value.js';
import '../../../vc/crypto/constants.js';
import '../../public-keys/public-key-secp256k1-value.js';
import '../../public-keys/public-key-sr25519-value.js';
import '../../did/onchain/constants.js';
import '../../did/onchain/typed-did/signature.js';
import '../../did/onchain/typed-did/did-method-key/did-method-key-signature.js';
import '../../signatures/signature-value.js';
import '../../signatures/signature-ed25519-value.js';
import '../../signatures/signature-secp256k1-value.js';
import '../../signatures/signature.js';
import '../../signatures/signature-sr25519-value.js';
import '../../generic/typed-uuid.js';
import '../../generic/utils.js';
import '../../generic/typed-bytes-array.js';
import '../../generic/with-from-dock-id.js';

class DockOffchainSignatureKeyRef extends TypedTuple {
  static Classes = [DockDidValue, DockParamsId];
}

class DockOffchainSignatureParamsRef extends TypedTuple {
  static Classes = [DockDidOrDidMethodKey, DockParamsId];
}

class CheqdOffchainSignatureKeyRef extends CheqdDLRRef {}

class CheqdTestnetOffchainSignatureKeyRef extends CheqdDLRRef {
  static Did = CheqdTestnetDid;
}

class CheqdMainnetOffchainSignatureKeyRef extends CheqdDLRRef {
  static Did = CheqdMainnetDid;
}

class CheqdOffchainSignatureParamsRef extends CheqdDLRRef {}

class CheqdTestnetOffchainSignatureParamsRef extends CheqdDLRRef {
  static Did = CheqdTestnetDid;

  static Id = CheqdParamsId;
}

class CheqdMainnetOffchainSignatureParamsRef extends CheqdDLRRef {
  static Did = CheqdMainnetDid;

  static Id = CheqdParamsId;
}

class DockOrCheqdOffchainSignatureParamsRef extends TypedTuple {
  constructor(...args) {
    super(...args);

    if (this[0].isCheqd) {
      return CheqdOffchainSignatureParamsRef.from(this);
    } else if (this[0].isDock && this[1] instanceof DockParamsId) {
      return DockOffchainSignatureParamsRef.from(this);
    }
  }

  static Classes = [NamespaceDid, anyOf(DockParamsId, CheqdParamsId)];
}

export { CheqdMainnetOffchainSignatureKeyRef, CheqdMainnetOffchainSignatureParamsRef, CheqdOffchainSignatureKeyRef, CheqdOffchainSignatureParamsRef, CheqdTestnetOffchainSignatureKeyRef, CheqdTestnetOffchainSignatureParamsRef, DockOffchainSignatureKeyRef, DockOffchainSignatureParamsRef, DockOrCheqdOffchainSignatureParamsRef };
//# sourceMappingURL=ref.js.map
