import { FastifyReply } from "fastify"; import { AuthenticatedRequest } from "../../../common/interfaces/authenticated.request.interface"; import { StripeUsageRecordPostDTO } from "../dtos/stripe-usage.dto"; import { StripeUsageAdminService } from "../services/stripe-usage-admin.service"; /** * StripeUsageController * * JSON:API compliant controller for usage-based billing. * Handles meter queries and usage record management. * * Routes: * - GET /stripe-usage-records/meters - List all billing meters * - GET /stripe-usage-records/meters/:id/summaries - Get meter event summaries * - POST /stripe-usage-records - Report usage (with subscription relationship) * - GET /stripe-usage-records - List usage records (filter by subscription) * - GET /stripe-usage-records/summary - Get usage summary */ export declare class StripeUsageController { private readonly usageService; constructor(usageService: StripeUsageAdminService); /** * List all available billing meters from Stripe */ listMeters(req: AuthenticatedRequest, reply: FastifyReply): Promise; /** * Get meter event summaries for a specific meter */ getMeterSummaries(req: AuthenticatedRequest, reply: FastifyReply, meterId: string, startTime: string, endTime: string): Promise; /** * Report usage for a subscription (JSON:API compliant) * * The subscription is specified via the relationships.subscription field in the request body. */ reportUsage(req: AuthenticatedRequest, reply: FastifyReply, body: StripeUsageRecordPostDTO): Promise; /** * List usage records * * Filters by subscription via query parameter: ?filter[subscriptionId]= */ listUsageRecords(req: AuthenticatedRequest, reply: FastifyReply, query: any, subscriptionId?: string, startTime?: string, endTime?: string): Promise; /** * Get usage summary for a subscription * * Filters by subscription via query parameter: ?filter[subscriptionId]= */ getUsageSummary(req: AuthenticatedRequest, reply: FastifyReply, subscriptionId: string, startTime: string, endTime: string): Promise; } //# sourceMappingURL=stripe-usage.controller.d.ts.map