// Generated from CantonPayments/PaymentStream/ActivePaymentStream.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 pkg5aee9b21b8e9a4c4975b5f4c4198e6e6e8469df49e2010820e792f393db870f4 from '../../../DA/Types';
import * as pkg9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69 from '../../../DA/Internal/Template';
import * as pkgb70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946 from '../../../DA/Time/Types';

import * as CantonPayments_PaymentStream_Types_Approvals from '../../../CantonPayments/PaymentStream/Types/Approvals/module';
import * as CantonPayments_PaymentStream_Types_LockFundsInput from '../../../CantonPayments/PaymentStream/Types/LockFundsInput/module';
import * as CantonPayments_PaymentStream_Types_PartyRole from '../../../CantonPayments/PaymentStream/Types/PartyRole/module';
import * as CantonPayments_PaymentStream_Types_PaymentContext from '../../../CantonPayments/PaymentStream/Types/PaymentContext/module';
import * as CantonPayments_PaymentStream_Types_PaymentResult from '../../../CantonPayments/PaymentStream/Types/PaymentResult/module';
import * as CantonPayments_PaymentStream_Types_PaymentStream from '../../../CantonPayments/PaymentStream/Types/PaymentStream/module';
import * as CantonPayments_PaymentStream_Types_PaymentStreamChanges from '../../../CantonPayments/PaymentStream/Types/PaymentStreamChanges/module';
import * as CantonPayments_PaymentStream_Types_PaymentStreamStats from '../../../CantonPayments/PaymentStream/Types/PaymentStreamStats/module';
import * as CantonPayments_PaymentStream_Types_ProcessFreeTrialResult from '../../../CantonPayments/PaymentStream/Types/ProcessFreeTrialResult/module';
import * as CantonPayments_PaymentStream_Types_ProcessorContext from '../../../CantonPayments/PaymentStream/Types/ProcessorContext/module';

export declare type PaymentStreamChangeProposal_Reject = {
  actor: damlTypes.Party;
  description: damlTypes.Optional<string>;
};

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


export declare type PaymentStreamChangeProposal_Apply = {
  actor: damlTypes.Party;
  activePaymentStreamCid: damlTypes.ContractId<ActivePaymentStream>;
};

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


export declare type PaymentStreamChangeProposal_Approve = {
  actor: damlTypes.Party;
};

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


export declare type PaymentStreamChangeProposal = {
  paymentStream: CantonPayments_PaymentStream_Types_PaymentStream.PaymentStream;
  processorContext: CantonPayments_PaymentStream_Types_ProcessorContext.ProcessorContext;
  paymentStreamChanges: CantonPayments_PaymentStream_Types_PaymentStreamChanges.PaymentStreamChanges;
  approvals: CantonPayments_PaymentStream_Types_Approvals.Approvals;
};

export declare interface PaymentStreamChangeProposalInterface {
  PaymentStreamChangeProposal_Approve: damlTypes.Choice<PaymentStreamChangeProposal, PaymentStreamChangeProposal_Approve, damlTypes.ContractId<PaymentStreamChangeProposal>, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<PaymentStreamChangeProposal, undefined>>;
  PaymentStreamChangeProposal_Apply: damlTypes.Choice<PaymentStreamChangeProposal, PaymentStreamChangeProposal_Apply, damlTypes.ContractId<ActivePaymentStream>, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<PaymentStreamChangeProposal, undefined>>;
  PaymentStreamChangeProposal_Reject: damlTypes.Choice<PaymentStreamChangeProposal, PaymentStreamChangeProposal_Reject, {}, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<PaymentStreamChangeProposal, undefined>>;
  Archive: damlTypes.Choice<PaymentStreamChangeProposal, pkg9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69.DA.Internal.Template.Archive, {}, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<PaymentStreamChangeProposal, undefined>>;
}
export declare const PaymentStreamChangeProposal:
  damlTypes.Template<PaymentStreamChangeProposal, undefined, '#CantonPayments:CantonPayments.PaymentStream.ActivePaymentStream:PaymentStreamChangeProposal'> &
  damlTypes.ToInterface<PaymentStreamChangeProposal, never> &
  PaymentStreamChangeProposalInterface;

export declare namespace PaymentStreamChangeProposal {
}



export declare type ActivePaymentStream_ChangeParty = {
  partyType: CantonPayments_PaymentStream_Types_PartyRole.PartyRole;
  oldParty: damlTypes.Party;
  newParty: damlTypes.Party;
  changePartyPaymentContext: CantonPayments_PaymentStream_Types_PaymentContext.PaymentContext;
};

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


export declare type ActivePaymentStream_ArchiveInactivePaymentStream = {
  actor: damlTypes.Party;
  paymentContext: CantonPayments_PaymentStream_Types_PaymentContext.PaymentContext;
};

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


export declare type ActivePaymentStream_WithdrawFunds = {
  amountToKeepLocked: damlTypes.Numeric;
  paymentContext: CantonPayments_PaymentStream_Types_PaymentContext.PaymentContext;
};

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


export declare type ActivePaymentStream_AddFunds = {
  actor: damlTypes.Party;
  lockFundsInput: CantonPayments_PaymentStream_Types_LockFundsInput.LockFundsInput;
  description: damlTypes.Optional<string>;
};

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


export declare type ActivePaymentStream_Refund = {
  paymentContext: CantonPayments_PaymentStream_Types_PaymentContext.PaymentContext;
  recipientAmuletInputs: damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.Amulet>[];
  recipientFeaturedAppRight: damlTypes.Optional<damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.FeaturedAppRight>>;
};

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


export declare type ActivePaymentStream_Cancel = {
  actor: damlTypes.Party;
  disregardAvailablePaidPeriod: boolean;
  description: damlTypes.Optional<string>;
  openMiningRoundCid: damlTypes.Optional<damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Round.OpenMiningRound>>;
};

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


export declare type ActivePaymentStream_ProposeChanges = {
  actor: damlTypes.Party;
  paymentStreamChanges: CantonPayments_PaymentStream_Types_PaymentStreamChanges.PaymentStreamChanges;
  description: damlTypes.Optional<string>;
};

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


export declare type ActivePaymentStream_ProcessPayment = {
  processingPeriod: pkgb70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946.DA.Time.Types.RelTime;
  paymentContext: CantonPayments_PaymentStream_Types_PaymentContext.PaymentContext;
  skipProcessorPayment: boolean;
  activityMarkerFeaturedAppRightCid: damlTypes.Optional<damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.FeaturedAppRight>>;
};

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


export declare type ActivePaymentStream_ProcessFreeTrial = {
  processingPeriod: pkgb70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946.DA.Time.Types.RelTime;
  featuredAppRight: damlTypes.Optional<damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.FeaturedAppRight>>;
};

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


export declare type ActivePaymentStream = {
  paymentStream: CantonPayments_PaymentStream_Types_PaymentStream.PaymentStream;
  processorContext: CantonPayments_PaymentStream_Types_ProcessorContext.ProcessorContext;
  processedAndPaidUntil: damlTypes.Time;
  lockedAmuletCid: damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.LockedAmulet>;
  stats: CantonPayments_PaymentStream_Types_PaymentStreamStats.PaymentStreamStats;
};

export declare interface ActivePaymentStreamInterface {
  ActivePaymentStream_ProcessFreeTrial: damlTypes.Choice<ActivePaymentStream, ActivePaymentStream_ProcessFreeTrial, CantonPayments_PaymentStream_Types_ProcessFreeTrialResult.ProcessFreeTrialResult<ActivePaymentStream>, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<ActivePaymentStream, undefined>>;
  ActivePaymentStream_ProcessPayment: damlTypes.Choice<ActivePaymentStream, ActivePaymentStream_ProcessPayment, CantonPayments_PaymentStream_Types_PaymentResult.ProcessPaymentResult<ActivePaymentStream>, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<ActivePaymentStream, undefined>>;
  ActivePaymentStream_ProposeChanges: damlTypes.Choice<ActivePaymentStream, ActivePaymentStream_ProposeChanges, damlTypes.ContractId<PaymentStreamChangeProposal>, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<ActivePaymentStream, undefined>>;
  ActivePaymentStream_Cancel: damlTypes.Choice<ActivePaymentStream, ActivePaymentStream_Cancel, pkg5aee9b21b8e9a4c4975b5f4c4198e6e6e8469df49e2010820e792f393db870f4.DA.Types.Tuple2<damlTypes.Optional<damlTypes.ContractId<ActivePaymentStream>>, damlTypes.Optional<damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.Amulet>>>, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<ActivePaymentStream, undefined>>;
  ActivePaymentStream_Refund: damlTypes.Choice<ActivePaymentStream, ActivePaymentStream_Refund, pkg5aee9b21b8e9a4c4975b5f4c4198e6e6e8469df49e2010820e792f393db870f4.DA.Types.Tuple2<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.AmuletRules.TransferResult, damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.Amulet>>, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<ActivePaymentStream, undefined>>;
  ActivePaymentStream_AddFunds: damlTypes.Choice<ActivePaymentStream, ActivePaymentStream_AddFunds, pkg5aee9b21b8e9a4c4975b5f4c4198e6e6e8469df49e2010820e792f393db870f4.DA.Types.Tuple2<damlTypes.ContractId<ActivePaymentStream>, damlTypes.Optional<damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.Amulet>>>, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<ActivePaymentStream, undefined>>;
  ActivePaymentStream_WithdrawFunds: damlTypes.Choice<ActivePaymentStream, ActivePaymentStream_WithdrawFunds, pkg5aee9b21b8e9a4c4975b5f4c4198e6e6e8469df49e2010820e792f393db870f4.DA.Types.Tuple2<damlTypes.ContractId<ActivePaymentStream>, damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.Amulet>>, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<ActivePaymentStream, undefined>>;
  ActivePaymentStream_ArchiveInactivePaymentStream: damlTypes.Choice<ActivePaymentStream, ActivePaymentStream_ArchiveInactivePaymentStream, damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.Amulet>, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<ActivePaymentStream, undefined>>;
  ActivePaymentStream_ChangeParty: damlTypes.Choice<ActivePaymentStream, ActivePaymentStream_ChangeParty, damlTypes.ContractId<ActivePaymentStream>, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<ActivePaymentStream, undefined>>;
  Archive: damlTypes.Choice<ActivePaymentStream, pkg9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69.DA.Internal.Template.Archive, {}, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<ActivePaymentStream, undefined>>;
}
export declare const ActivePaymentStream:
  damlTypes.Template<ActivePaymentStream, undefined, '#CantonPayments:CantonPayments.PaymentStream.ActivePaymentStream:ActivePaymentStream'> &
  damlTypes.ToInterface<ActivePaymentStream, never> &
  ActivePaymentStreamInterface;

export declare namespace ActivePaymentStream {
}


