import type { AccountArrearsSettings } from './account-arrears-settings'; import type { Asset } from './asset'; import type { Balances } from './balances'; import type { Currency } from './currency'; import type { DisbursementDetails } from './disbursement-details'; import type { FeesAccountSettings } from './fees-account-settings'; import type { Guarantor } from './guarantor'; import type { InterestSettings } from './interest-settings'; import type { InvestorFund } from './investor-fund'; import type { LoanAccountRedrawSettings } from './loan-account-redraw-settings'; import type { LoanTranche } from './loan-tranche'; import type { PenaltySettings } from './penalty-settings'; import type { PlannedInstallmentFee } from './planned-installment-fee'; import type { PrepaymentSettings } from './prepayment-settings'; import type { PrincipalPaymentAccountSettings } from './principal-payment-account-settings'; import type { RevolvingAccountCreditBalanceSettings } from './revolving-account-credit-balance-settings'; import type { ScheduleSettings } from './schedule-settings'; export interface LoanAccount { accountArrearsSettings?: AccountArrearsSettings; accountHolderKey: string; accountHolderType: LoanAccountAccountHolderTypeEnum; accountState?: LoanAccountAccountStateEnum; accountSubState?: LoanAccountAccountSubStateEnum; accruedInterest?: number; accruedPenalty?: number; activationTransactionKey?: string; adjustTotalDueForInstallmentsWithDifferentInterval?: boolean; allowAdvanceRepayment?: boolean; allowOffset?: boolean; approvedDate?: string; arrearsTolerancePeriod?: number; assets?: Array; assignedBranchKey?: string; assignedCentreKey?: string; assignedUserKey?: string; balances?: Balances; closedDate?: string; creationDate?: string; creditArrangementKey?: string; creditBalanceSettings?: RevolvingAccountCreditBalanceSettings; currency?: Currency; daysInArrears?: number; daysLate?: number; disbursementDetails?: DisbursementDetails; encodedKey?: string; feesSettings?: FeesAccountSettings; fundingSources?: Array; futurePaymentsAcceptance?: LoanAccountFuturePaymentsAcceptanceEnum; guarantors?: Array; id?: string; interestAccruedInBillingCycle?: number; interestCommission?: number; interestFromArrearsAccrued?: number; interestSettings?: InterestSettings; lastAccountAppraisalDate?: string; lastInterestAppliedDate?: string; lastInterestReviewDate?: string; lastLockedDate?: string; lastModifiedDate?: string; lastSetToArrearsDate?: string; lastTaxRateReviewDate?: string; latePaymentsRecalculationMethod?: LoanAccountLatePaymentsRecalculationMethodEnum; loanAmount: number; loanName?: string; lockedAccountTotalDueType?: LoanAccountLockedAccountTotalDueTypeEnum; lockedOperations?: Array; migrationEventKey?: string; modifyInterestForFirstInstallment?: boolean; notes?: string; originalAccountKey?: string; paymentHolidaysAccruedInterest?: number; paymentMethod?: LoanAccountPaymentMethodEnum; penaltySettings?: PenaltySettings; plannedInstallmentFees?: Array; prepaymentSettings?: PrepaymentSettings; principalPaymentSettings?: PrincipalPaymentAccountSettings; productTypeKey: string; redrawSettings?: LoanAccountRedrawSettings; rescheduledAccountKey?: string; scheduleSettings: ScheduleSettings; settlementAccountKey?: string; taxRate?: number; terminationDate?: string; tranches?: Array; useInterestAccruedAsTotalDueWhenIntervalIsDifferent?: boolean; } export declare const LoanAccountAccountHolderTypeEnum: { readonly Client: "CLIENT"; readonly Group: "GROUP"; }; export type LoanAccountAccountHolderTypeEnum = (typeof LoanAccountAccountHolderTypeEnum)[keyof typeof LoanAccountAccountHolderTypeEnum]; export declare const LoanAccountAccountStateEnum: { readonly PartialApplication: "PARTIAL_APPLICATION"; readonly PendingApproval: "PENDING_APPROVAL"; readonly Approved: "APPROVED"; readonly Active: "ACTIVE"; readonly ActiveInArrears: "ACTIVE_IN_ARREARS"; readonly Closed: "CLOSED"; readonly ClosedWrittenOff: "CLOSED_WRITTEN_OFF"; readonly ClosedRejected: "CLOSED_REJECTED"; }; export type LoanAccountAccountStateEnum = (typeof LoanAccountAccountStateEnum)[keyof typeof LoanAccountAccountStateEnum]; export declare const LoanAccountAccountSubStateEnum: { readonly PartiallyDisbursed: "PARTIALLY_DISBURSED"; readonly Locked: "LOCKED"; readonly LockedCapping: "LOCKED_CAPPING"; readonly Refinanced: "REFINANCED"; readonly Rescheduled: "RESCHEDULED"; readonly Withdrawn: "WITHDRAWN"; readonly Repaid: "REPAID"; readonly Rejected: "REJECTED"; readonly WrittenOff: "WRITTEN_OFF"; readonly Terminated: "TERMINATED"; }; export type LoanAccountAccountSubStateEnum = (typeof LoanAccountAccountSubStateEnum)[keyof typeof LoanAccountAccountSubStateEnum]; export declare const LoanAccountFuturePaymentsAcceptanceEnum: { readonly NoFuturePayments: "NO_FUTURE_PAYMENTS"; readonly AcceptFuturePayments: "ACCEPT_FUTURE_PAYMENTS"; readonly AcceptOverpayments: "ACCEPT_OVERPAYMENTS"; }; export type LoanAccountFuturePaymentsAcceptanceEnum = (typeof LoanAccountFuturePaymentsAcceptanceEnum)[keyof typeof LoanAccountFuturePaymentsAcceptanceEnum]; export declare const LoanAccountLatePaymentsRecalculationMethodEnum: { readonly OverdueInstallmentsIncrease: "OVERDUE_INSTALLMENTS_INCREASE"; readonly LastInstallmentIncrease: "LAST_INSTALLMENT_INCREASE"; readonly NoRecalculation: "NO_RECALCULATION"; }; export type LoanAccountLatePaymentsRecalculationMethodEnum = (typeof LoanAccountLatePaymentsRecalculationMethodEnum)[keyof typeof LoanAccountLatePaymentsRecalculationMethodEnum]; export declare const LoanAccountLockedAccountTotalDueTypeEnum: { readonly BalanceAmount: "BALANCE_AMOUNT"; readonly DueAmountOnLateInstallments: "DUE_AMOUNT_ON_LATE_INSTALLMENTS"; }; export type LoanAccountLockedAccountTotalDueTypeEnum = (typeof LoanAccountLockedAccountTotalDueTypeEnum)[keyof typeof LoanAccountLockedAccountTotalDueTypeEnum]; export declare const LoanAccountLockedOperationsEnum: { readonly ApplyInterest: "APPLY_INTEREST"; readonly ApplyFees: "APPLY_FEES"; readonly ApplyPenalties: "APPLY_PENALTIES"; }; export type LoanAccountLockedOperationsEnum = (typeof LoanAccountLockedOperationsEnum)[keyof typeof LoanAccountLockedOperationsEnum]; export declare const LoanAccountPaymentMethodEnum: { readonly Horizontal: "HORIZONTAL"; readonly Vertical: "VERTICAL"; }; export type LoanAccountPaymentMethodEnum = (typeof LoanAccountPaymentMethodEnum)[keyof typeof LoanAccountPaymentMethodEnum];