import { Refund, RefundStatus } from '../entities/refund.entity'; export const REFUND_REPOSITORY = Symbol('IRefundRepository'); export interface IRefundRepository { findById(id: string): Promise; findAndCount(options: { status?: RefundStatus; page: number; limit: number; }): Promise<[Refund[], number]>; create(data: Partial): Promise; update(id: string, data: Partial): Promise; /** Aggregate: total refund count and amount */ getRefundStats(): Promise<{ count: number; total: string }>; /** Aggregate: completed refund total */ getCompletedRefundTotal(): Promise; /** QueryBuilder-based: monthly refund counts (last 12 months) */ getMonthlyRefundCounts(): Promise>; }