// Generated from CantonPayments/Airdrop/AirdropFactory.daml
/* eslint-disable @typescript-eslint/camelcase */
/* eslint-disable @typescript-eslint/no-namespace */
/* eslint-disable @typescript-eslint/no-use-before-define */
import * as jtv from '@mojotech/json-type-validation';
import * as damlTypes from '@daml/types';

import * as pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1 from '../../..';
import * as pkg7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda from '../../../Splice/Api/FeaturedAppRightV1';
import * as pkg9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69 from '../../../DA/Internal/Template';

import * as CantonPayments_Airdrop_PersonalAirdrop from '../../../CantonPayments/Airdrop/PersonalAirdrop/module';

export declare type Factory_ExecuteBatchTransfers = {
  personalAirdropCids: damlTypes.ContractId<CantonPayments_Airdrop_PersonalAirdrop.PersonalAirdrop>[];
  amuletInputs: damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.Amulet>[];
  openMiningRoundCid: damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Round.OpenMiningRound>;
  amount: damlTypes.Numeric;
  numberOfTransfers: damlTypes.Int;
  lockedAmuletCid: damlTypes.Optional<damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.LockedAmulet>>;
  optMergeAmuletInputs: damlTypes.Optional<damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.Amulet>[][]>;
  optCreateFeaturedMarker: damlTypes.Optional<boolean>;
};

export declare const Factory_ExecuteBatchTransfers:
  damlTypes.Serializable<Factory_ExecuteBatchTransfers> & {
  }
;


export declare type Factory_JoinAirdrop = {
  recipient: damlTypes.Party;
};

export declare const Factory_JoinAirdrop:
  damlTypes.Serializable<Factory_JoinAirdrop> & {
  }
;


export declare type AirdropFactory = {
  dso: damlTypes.Party;
  sender: damlTypes.Party;
  provider: damlTypes.Party;
  featuredAppRight: damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.FeaturedAppRight>;
  amuletRulesCid: damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.AmuletRules.AmuletRules>;
  appRewardBeneficiaries: pkg7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda.Splice.Api.FeaturedAppRightV1.AppRewardBeneficiary[];
};

export declare interface AirdropFactoryInterface {
  Factory_JoinAirdrop: damlTypes.Choice<AirdropFactory, Factory_JoinAirdrop, damlTypes.ContractId<CantonPayments_Airdrop_PersonalAirdrop.PersonalAirdrop>, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<AirdropFactory, undefined>>;
  Archive: damlTypes.Choice<AirdropFactory, pkg9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69.DA.Internal.Template.Archive, {}, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<AirdropFactory, undefined>>;
  Factory_ExecuteBatchTransfers: damlTypes.Choice<AirdropFactory, Factory_ExecuteBatchTransfers, pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.AmuletRules.TransferResult, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<AirdropFactory, undefined>>;
}
export declare const AirdropFactory:
  damlTypes.Template<AirdropFactory, undefined, '#CantonPayments:CantonPayments.Airdrop.AirdropFactory:AirdropFactory'> &
  damlTypes.ToInterface<AirdropFactory, never> &
  AirdropFactoryInterface;

export declare namespace AirdropFactory {
}


