// Generated from CantonPayments/PaymentStream/PaymentStreamFactory.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';
/* eslint-disable-next-line @typescript-eslint/no-unused-vars */
import * as damlLedger from '@daml/ledger';

import * as pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1 from '../../..';
import * as pkg5aee9b21b8e9a4c4975b5f4c4198e6e6e8469df49e2010820e792f393db870f4 from '../../../DA/Types';
import * as pkg9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69 from '../../../DA/Internal/Template';

import * as CantonPayments_PaymentStream_ActivePaymentStream from '../../../CantonPayments/PaymentStream/ActivePaymentStream/module';
import * as CantonPayments_PaymentStream_ProposedPaymentStream from '../../../CantonPayments/PaymentStream/ProposedPaymentStream/module';
import * as CantonPayments_PaymentStream_Types_LockFundsInput from '../../../CantonPayments/PaymentStream/Types/LockFundsInput/module';
import * as CantonPayments_PaymentStream_Types_PaymentStreamProposal from '../../../CantonPayments/PaymentStream/Types/PaymentStreamProposal/module';
import * as CantonPayments_PaymentStream_Types_ProcessorContext from '../../../CantonPayments/PaymentStream/Types/ProcessorContext/module';

export declare type PaymentStreamFactory_CreatePaymentStreamProposal = {
  actor: damlTypes.Party;
  paymentStreamProposal: CantonPayments_PaymentStream_Types_PaymentStreamProposal.PaymentStreamProposal;
  lockFundsInput: damlTypes.Optional<CantonPayments_PaymentStream_Types_LockFundsInput.LockFundsInput>;
};

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


export declare type PaymentStreamFactory = {
  processorContext: CantonPayments_PaymentStream_Types_ProcessorContext.ProcessorContext;
};

export declare interface PaymentStreamFactoryInterface {
  Archive: damlTypes.Choice<PaymentStreamFactory, pkg9e70a8b3510d617f8a136213f33d6a903a10ca0eeec76bb06ba55d1ed9680f69.DA.Internal.Template.Archive, {}, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<PaymentStreamFactory, undefined>>;
  PaymentStreamFactory_CreatePaymentStreamProposal: damlTypes.Choice<PaymentStreamFactory, PaymentStreamFactory_CreatePaymentStreamProposal, pkg5aee9b21b8e9a4c4975b5f4c4198e6e6e8469df49e2010820e792f393db870f4.DA.Types.Either<damlTypes.ContractId<CantonPayments_PaymentStream_ProposedPaymentStream.ProposedPaymentStream>, pkg5aee9b21b8e9a4c4975b5f4c4198e6e6e8469df49e2010820e792f393db870f4.DA.Types.Tuple2<damlTypes.ContractId<CantonPayments_PaymentStream_ActivePaymentStream.ActivePaymentStream>, damlTypes.Optional<damlTypes.ContractId<pkg3ca1343ab26b453d38c8adb70dca5f1ead8440c42b59b68f070786955cbf9ec1.Splice.Amulet.Amulet>>>>, undefined> & damlTypes.ChoiceFrom<damlTypes.Template<PaymentStreamFactory, undefined>>;
}
export declare const PaymentStreamFactory:
  damlTypes.Template<PaymentStreamFactory, undefined, '#CantonPayments:CantonPayments.PaymentStream.PaymentStreamFactory:PaymentStreamFactory'> &
  damlTypes.ToInterface<PaymentStreamFactory, never> &
  PaymentStreamFactoryInterface;

export declare namespace PaymentStreamFactory {
  export type CreateEvent = damlLedger.CreateEvent<PaymentStreamFactory, undefined, typeof PaymentStreamFactory.templateId>
  export type ArchiveEvent = damlLedger.ArchiveEvent<PaymentStreamFactory, typeof PaymentStreamFactory.templateId>
  export type Event = damlLedger.Event<PaymentStreamFactory, undefined, typeof PaymentStreamFactory.templateId>
  export type QueryResult = damlLedger.QueryResult<PaymentStreamFactory, undefined, typeof PaymentStreamFactory.templateId>
}


