import '../../../utils/types/array.js';
import 'crypto';
import { withExtendedPrototypeProperties } from '../../../utils/inheritance.js';
import 'bs58';
import 'multiformats/bases/base58';
import 'varint';
import '../../../utils/encoding/ss-58.js';
import '../common/abstract-api-provider.js';
import AbstractBaseModule from '../common/abstract-base-module.js';
import '../../../utils/types/object.js';
import '../../../utils/types/iterable.js';
import '../../../utils/types/set.js';
import 'blake2b';
import '../../../utils/types/bytes.js';
import '../../../utils/interfaces.js';
import '../../../utils/assert.js';
import '../../../utils/error.js';
import '../../../utils/types/string.js';

class AbstractAttestModule extends AbstractBaseModule {
  /**
   * Fetches the DIDs attestations IRI from the chain
   * @param {*} did - DID
   * @return {Promise<TypedBytes | null>} The DID's attestation
   */
  async getAttests(_did) {
    throw new Error('Unimplemented');
  }

  /**
   * Creates an attestation claim on chain for a specific DID
   * @param iri
   * @param signerDid
   * @param didKeypair
   * @param params
   */
  async setClaim(iri, targetDid, didKeypair, params) {
    return await this.signAndSend(
      await this.setClaimTx(iri, targetDid, didKeypair),
      params,
    );
  }

  /**
   * Creates an attestation claim on chain for a specific DID
   * @param iri
   * @param targetDid
   * @param didKeypair
   */
  async setClaimTx(_iri, _targetDid, _didKeypair) {
    throw new Error('Unimplemented');
  }
}

var AbstractAttestModule$1 = withExtendedPrototypeProperties(
  ['getAttests', 'setClaimTx'],
  AbstractAttestModule,
);

export { AbstractAttestModule$1 as default };
//# sourceMappingURL=module.js.map
