"use strict";
/* eslint-disable-next-line no-unused-vars */
function __export(m) {
/* eslint-disable-next-line no-prototype-builtins */
    for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
}
Object.defineProperty(exports, "__esModule", { value: true });
/* eslint-disable-next-line no-unused-vars */
var jtv = require('@mojotech/json-type-validation');
/* eslint-disable-next-line no-unused-vars */
var damlTypes = require('@daml/types');
/* eslint-disable-next-line no-unused-vars */
var damlLedger = require('@daml/ledger');

var pkg9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69 = require('../../../DA/Internal/Template');

var Fairmint_OpenCapTable_CapTable = require('../../../Fairmint/OpenCapTable/CapTable/module');
var Fairmint_OpenCapTable_OCF_Issuer = require('../../../Fairmint/OpenCapTable/OCF/Issuer/module');
var Fairmint_OpenCapTable_Types = require('../../../Fairmint/OpenCapTable/Types/module');


exports.WithdrawAuthorization = {
  decoder: damlTypes.lazyMemo(function () { return jtv.object({}); }),
  encode: function (__typed__) {
  return {
  };
}
,
};



exports.CreateCapTable = {
  decoder: damlTypes.lazyMemo(function () { return jtv.object({issuer_data: Fairmint_OpenCapTable_OCF_Issuer.IssuerOcfData.decoder, }); }),
  encode: function (__typed__) {
  return {
    issuer_data: Fairmint_OpenCapTable_OCF_Issuer.IssuerOcfData.encode(__typed__.issuer_data),
  };
}
,
};



exports.IssuerAuthorization = damlTypes.assembleTemplate(
{
  templateId: '#OpenCapTable-v25:Fairmint.OpenCapTable.IssuerAuthorization:IssuerAuthorization',
  keyDecoder: damlTypes.lazyMemo(function () { return jtv.constant(undefined); }),
  keyEncode: function () { throw 'EncodeError'; },
  decoder: damlTypes.lazyMemo(function () { return jtv.object({context: Fairmint_OpenCapTable_Types.Context.decoder, }); }),
  encode: function (__typed__) {
  return {
    context: Fairmint_OpenCapTable_Types.Context.encode(__typed__.context),
  };
}
,
  CreateCapTable: {
    template: function () { return exports.IssuerAuthorization; },
    choiceName: 'CreateCapTable',
    argumentDecoder: damlTypes.lazyMemo(function () { return exports.CreateCapTable.decoder; }),
    argumentEncode: function (__typed__) { return exports.CreateCapTable.encode(__typed__); },
    resultDecoder: damlTypes.lazyMemo(function () { return damlTypes.ContractId(Fairmint_OpenCapTable_CapTable.CapTable).decoder; }),
    resultEncode: function (__typed__) { return damlTypes.ContractId(Fairmint_OpenCapTable_CapTable.CapTable).encode(__typed__); },
  },
  Archive: {
    template: function () { return exports.IssuerAuthorization; },
    choiceName: 'Archive',
    argumentDecoder: damlTypes.lazyMemo(function () { return pkg9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69.DA.Internal.Template.Archive.decoder; }),
    argumentEncode: function (__typed__) { return pkg9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69.DA.Internal.Template.Archive.encode(__typed__); },
    resultDecoder: damlTypes.lazyMemo(function () { return damlTypes.Unit.decoder; }),
    resultEncode: function (__typed__) { return damlTypes.Unit.encode(__typed__); },
  },
  WithdrawAuthorization: {
    template: function () { return exports.IssuerAuthorization; },
    choiceName: 'WithdrawAuthorization',
    argumentDecoder: damlTypes.lazyMemo(function () { return exports.WithdrawAuthorization.decoder; }),
    argumentEncode: function (__typed__) { return exports.WithdrawAuthorization.encode(__typed__); },
    resultDecoder: damlTypes.lazyMemo(function () { return damlTypes.Unit.decoder; }),
    resultEncode: function (__typed__) { return damlTypes.Unit.encode(__typed__); },
  },
}

);


damlTypes.registerTemplate(exports.IssuerAuthorization, ['b5f040df7d2aee4825ee0e890eee83ede65d88d2d127aaaeaaa119e70c22bdf9', '#OpenCapTable-v25']);

