import { CollectionConditionOperator, CollectionPropertyValue, ICollectionAuditedEntity, ICollectionMoney } from './Common'; export declare enum CommissionBaseType { TOTAL_COLLECTED = "TOTAL_COLLECTED", PRINCIPAL_COLLECTED = "PRINCIPAL_COLLECTED", INTEREST_COLLECTED = "INTEREST_COLLECTED", FEES_COLLECTED = "FEES_COLLECTED" } export interface ICommissionCondition { fieldNameKey: string; operator: CollectionConditionOperator; expectedValue?: CollectionPropertyValue; } export interface ICommissionTier { id: string; minimum?: ICollectionMoney; maximum?: ICollectionMoney; percentage: string; } export interface ICommissionRule extends ICollectionAuditedEntity { ruleSetId: string; name: string; enabled: boolean; order: number; baseType: CommissionBaseType; fixedPercentage?: string; tiers?: ICommissionTier[]; conditions?: ICommissionCondition[]; validFrom?: Date; validTo?: Date; } export interface ICommissionRuleSet extends ICollectionAuditedEntity { portfolioId: string; name: string; enabled: boolean; ruleIds: string[]; } export interface IAgentCommissionResult { id: string; spaceId: string; portfolioId: string; paymentId: string; userId: string; ruleId: string; ruleSnapshot?: string; commissionBase: ICollectionMoney; percentage: string; commissionAmount: ICollectionMoney; calculatedAt: Date; adjustedAt?: Date; adjustedBy?: string; adjustmentReason?: string; }