import { ICollectionAuditedEntity, ICollectionMoney } from './Common'; export declare enum PaymentPromiseStatus { PENDING = "PENDING", PARTIALLY_FULFILLED = "PARTIALLY_FULFILLED", FULFILLED = "FULFILLED", OVERDUE = "OVERDUE", BROKEN = "BROKEN", CANCELLED = "CANCELLED" } export interface IPaymentPromise extends ICollectionAuditedEntity { portfolioId: string; contactId: string; debtIds: string[]; paymentPlanId?: string; installmentId?: string; promisedAmount: ICollectionMoney; receivedAmount: ICollectionMoney; promisedFor: Date; status: PaymentPromiseStatus; agentId: string; paymentIds: string[]; fulfilledAt?: Date; brokenAt?: Date; cancellationReason?: string; } export declare enum PromiseAlertSeverity { INFO = "INFO", WARNING = "WARNING", CRITICAL = "CRITICAL" } export declare enum PromiseAlertRecipientType { AGENT = "AGENT", ASSIGNED_GROUP = "ASSIGNED_GROUP", SUPERVISOR = "SUPERVISOR", ROLE = "ROLE" } export interface IPromiseAlertRule { id: string; offsetMinutes: number; severity: PromiseAlertSeverity; recipientTypes: PromiseAlertRecipientType[]; roleIds?: string[]; notificationChannels: string[]; } export interface IPromiseMonitoringPolicy extends ICollectionAuditedEntity { name: string; enabled: boolean; rules: IPromiseAlertRule[]; }