import { JsonApiDataInterface } from "../../../core/jsonapi"; import { JsonApiService } from "../../../core/jsonapi"; import { StripeUsageApiService } from "./stripe-usage-api.service"; import { StripeCustomerRepository } from "../../stripe-customer/repositories/stripe-customer.repository"; import { StripeSubscriptionRepository } from "../../stripe-subscription/repositories/stripe-subscription.repository"; import { StripeUsageRecordRepository } from "../repositories/stripe-usage-record.repository"; /** * StripeUsageAdminService * * Manages usage-based billing for subscriptions using Stripe's V2 Billing Meters API. * Tracks usage events, provides usage summaries, and integrates with metered billing. * * Key Features: * - Report usage events to Stripe meters * - Store usage records locally for tracking * - List usage records with time filtering * - Generate usage summaries for billing periods * - Retrieve meter event summaries from Stripe * - List available billing meters */ export declare class StripeUsageAdminService { private readonly usageRecordRepository; private readonly subscriptionRepository; private readonly stripeCustomerRepository; private readonly stripeUsageApiService; private readonly jsonApiService; constructor(usageRecordRepository: StripeUsageRecordRepository, subscriptionRepository: StripeSubscriptionRepository, stripeCustomerRepository: StripeCustomerRepository, stripeUsageApiService: StripeUsageApiService, jsonApiService: JsonApiService); /** * Report usage for a subscription */ reportUsage(params: { companyId: string; subscriptionId: string; meterId: string; meterEventName: string; quantity: number; timestamp?: Date; }): Promise; /** * List usage records for a subscription */ listUsageRecords(params: { companyId: string; subscriptionId: string; query: any; startTime?: Date; endTime?: Date; }): Promise; /** * Get usage summary for a subscription */ getUsageSummary(params: { companyId: string; subscriptionId: string; startTime: Date; endTime: Date; }): Promise; /** * Get meter event summaries from Stripe */ getMeterEventSummaries(params: { companyId: string; meterId: string; startTime: Date; endTime: Date; }): Promise; /** * List all available billing meters */ listMeters(): Promise; } //# sourceMappingURL=stripe-usage-admin.service.d.ts.map