import { ICollectionMoney, IDebtContactProjection, IDebtProperty, DebtOrigin, DebtPriority, DebtStage } from './Common'; export declare enum DebtProductType { LOAN = "LOAN", CREDIT_CARD = "CREDIT_CARD", ACCOUNT = "ACCOUNT", SERVICE = "SERVICE", INVOICE = "INVOICE", OTHER = "OTHER" } export interface IDebtBalanceBreakdown { principal: ICollectionMoney; compensatoryInterest?: ICollectionMoney; penaltyInterest?: ICollectionMoney; fees?: ICollectionMoney; taxes?: ICollectionMoney; discounts?: ICollectionMoney; total: ICollectionMoney; } export interface IDebt { id: string; spaceId: string; number: number; title: string; description?: string; contactId: string; contact?: IDebtContactProjection; statusId: string; stage: DebtStage; priority: DebtPriority; origin: DebtOrigin; assigneeId?: string; assignedGroupId?: string; properties: IDebtProperty[]; version: number; creditorId: string; portfolioId: string; batchId?: string; productType: DebtProductType; productName?: string; productReference?: string; originalAmount: ICollectionMoney; currentBalance: ICollectionMoney; balanceBreakdown?: IDebtBalanceBreakdown; originatedAt?: Date; dueAt: Date; daysPastDue: number; interestConfigurationId?: string; activePaymentPlanId?: string; sourceRowExternalId?: string; createdAt: Date; createdBy: string; updatedAt?: Date; updatedBy?: string; deletedAt?: Date; deletedBy?: string; } export interface ICreateDebtDto { title: string; description?: string; contactId: string; statusId?: string; priority: DebtPriority; origin: DebtOrigin; assigneeId?: string; assignedGroupId?: string; properties?: IDebtProperty[]; source?: string; idempotencyKey?: string; creditorId: string; portfolioId: string; batchId?: string; productType: DebtProductType; productName?: string; productReference?: string; originalAmount: ICollectionMoney; currentBalance?: ICollectionMoney; balanceBreakdown?: IDebtBalanceBreakdown; originatedAt?: Date; dueAt: Date; sourceRowExternalId?: string; } export interface IUpdateDebtDto { expectedVersion: number; title?: string; description?: string; priority?: DebtPriority; assigneeId?: string; assignedGroupId?: string; properties?: IDebtProperty[]; productType?: DebtProductType; productName?: string; productReference?: string; currentBalance?: ICollectionMoney; balanceBreakdown?: IDebtBalanceBreakdown; dueAt?: Date; interestConfigurationId?: string; }