import { IBillingCycleRepository } from '../repositories/IBillingCycleRepository.js'; import { IPlanRepository } from '../repositories/IPlanRepository.js'; import { ISubscriptionRepository } from '../repositories/ISubscriptionRepository.js'; import { CreateBillingCycleDto, UpdateBillingCycleDto, BillingCycleFilterDto, BillingCycleDto } from '../dtos/BillingCycleDto.js'; import { DurationUnit } from '../../domain/value-objects/DurationUnit.js'; export declare class BillingCycleManagementService { private readonly billingCycleRepository; private readonly planRepository; private readonly subscriptionRepository; constructor(billingCycleRepository: IBillingCycleRepository, planRepository: IPlanRepository, subscriptionRepository: ISubscriptionRepository); createBillingCycle(dto: CreateBillingCycleDto): Promise; updateBillingCycle(key: string, dto: UpdateBillingCycleDto): Promise; getBillingCycle(key: string): Promise; getBillingCyclesByPlan(planKey: string): Promise; listBillingCycles(filters?: BillingCycleFilterDto): Promise; archiveBillingCycle(key: string): Promise; unarchiveBillingCycle(key: string): Promise; deleteBillingCycle(key: string): Promise; /** * Calculate next period end date based on billing cycle */ calculateNextPeriodEnd(billingCycleKey: string, currentPeriodEnd: Date): Promise; /** * Get billing cycles by duration unit */ getBillingCyclesByDurationUnit(durationUnit: DurationUnit): Promise; /** * Get default billing cycles (commonly used ones) */ getDefaultBillingCycles(): Promise; } //# sourceMappingURL=BillingCycleManagementService.d.ts.map