import { FastifyReply } from "fastify"; import { StripePricePostDTO, StripePricePutDTO } from "../dtos/stripe-price.dto"; import { StripePriceAdminService } from "../services/stripe-price-admin.service"; /** * StripePriceController * * REST API controller for Stripe price management. * Provides admin endpoints for CRUD operations on prices. * * All endpoints require admin authentication. */ export declare class StripePriceController { private readonly stripePriceAdminService; constructor(stripePriceAdminService: StripePriceAdminService); /** * List all prices * * GET /billing/prices * * Query parameters: * - productId: Filter by product ID * - active: Filter by active status (true/false) * * Requires: Admin authentication */ listPrices(reply: FastifyReply, query: any, productId?: string, active?: string): Promise; /** * Get single price by ID * * GET /billing/prices/:id * * Requires: Admin authentication */ getPrice(reply: FastifyReply, id: string): Promise; /** * Create new price * * POST /billing/prices * * Requires: Admin authentication */ createPrice(reply: FastifyReply, body: StripePricePostDTO): Promise; /** * Update existing price * * PUT /billing/prices/:id * * Note: Only nickname and metadata can be updated (Stripe limitation) * * Requires: Admin authentication */ updatePrice(reply: FastifyReply, id: string, body: StripePricePutDTO): Promise; /** * Archive price * * POST /billing/prices/:id/archive * * Sets the price as inactive in both Stripe and the local database. * Archived prices cannot be used for new subscriptions. * * Requires: Admin authentication */ archivePrice(reply: FastifyReply, id: string): Promise; /** * Reactivate price * * DELETE /billing/prices/:id/archive * * Sets the price as active in both Stripe and the local database. * Active prices can be used for new subscriptions. * * Requires: Admin authentication */ reactivatePrice(reply: FastifyReply, id: string): Promise; } //# sourceMappingURL=stripe-price.controller.d.ts.map