// Generated from CantonPayments/PaymentStream/Types/PaymentStreamProposal.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 pkg7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda from '../../../../Splice/Api/FeaturedAppRightV1';
import * as pkgb70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946 from '../../../../DA/Time/Types';

import * as CantonPayments_PaymentStream_Types_PaymentStreamAmount from '../../../../CantonPayments/PaymentStream/Types/PaymentStreamAmount/module';
import * as CantonPayments_PaymentStream_Types_PaymentStreamTime from '../../../../CantonPayments/PaymentStream/Types/PaymentStreamTime/module';

export declare type PaymentStreamProposal = {
  payer: damlTypes.Party;
  recipient: damlTypes.Party;
  recipientPaymentPerDay: CantonPayments_PaymentStream_Types_PaymentStreamAmount.PaymentStreamAmount;
  processorPaymentPerDay: damlTypes.Optional<CantonPayments_PaymentStream_Types_PaymentStreamAmount.PaymentStreamAmount>;
  freeTrialExpiration: damlTypes.Optional<CantonPayments_PaymentStream_Types_PaymentStreamTime.PaymentStreamExpiration>;
  prepayWindow: pkgb70db8369e1c461d5c70f1c86f526a29e9776c655e6ffc2560f95b05ccb8b946.DA.Time.Types.RelTime;
  paymentsEndAt: damlTypes.Optional<CantonPayments_PaymentStream_Types_PaymentStreamTime.PaymentStreamExpiration>;
  provider: damlTypes.Party;
  appRewardBeneficiaries: pkg7804375fe5e4c6d5afe067bd314c42fe0b7d005a1300019c73154dd939da4dda.Splice.Api.FeaturedAppRightV1.AppRewardBeneficiary[];
  description: damlTypes.Optional<string>;
  metadata: damlTypes.Optional<{ [key: string]: string }>;
  observers: damlTypes.Party[];
};

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

