import { Subscription } from '../../domain/entities/Subscription.js'; import { Customer } from '../../domain/entities/Customer.js'; import { SubscriptionFilterDto } from '../dtos/SubscriptionDto.js'; export interface ISubscriptionRepository { save(subscription: Subscription): Promise; findById(id: number): Promise; findByKey(key: string): Promise; findByCustomerId(customerId: number, filters?: SubscriptionFilterDto): Promise; findByStripeId(stripeSubscriptionId: string): Promise; findAll(filters?: SubscriptionFilterDto): Promise>; findByIds(ids: number[]): Promise; delete(id: number): Promise; exists(id: number): Promise; findActiveByCustomerAndPlan(customerId: number, planId: number): Promise; hasSubscriptionsForPlan(planId: number): Promise; hasSubscriptionsForBillingCycle(billingCycleId: number): Promise; findExpiredWithTransitionPlans(limit?: number): Promise; } //# sourceMappingURL=ISubscriptionRepository.d.ts.map