import { FastifyReply } from "fastify"; import { TokenUsageAdminService } from "../services/tokenusage.admin.service"; /** * Platform-wide token-usage reporting. Every route is administrator-only: * JwtAuthGuard._validateRoles enforces @Roles and always admits the * Administrator role, so a non-administrator receives 401. * * Mounted at /tokenusages/administration/* — no overlap with the consuming * app's own /tokenusages, /tokenusages/summary and /tokenusages/aggregated * routes, so importing TokenUsageModule cannot duplicate a Fastify route. * * Enum-valued query params are validated against a closed allowlist here rather * than in a DTO: DTOs are body validation for POST/PUT/PATCH, and GET filters * use bare @Query() params. The allowlist matters — the repository interpolates * granularity and dimension into Cypher (they select a clause, they are not * values), so an unvalidated string would be an injection vector. */ export declare class TokenUsageAdminController { private readonly service; constructor(service: TokenUsageAdminService); getSummary(reply: FastifyReply, from?: string, to?: string, companyId?: string): Promise; getTimeline(reply: FastifyReply, from?: string, to?: string, granularity?: string, stackBy?: string, companyId?: string): Promise; getBreakdown(reply: FastifyReply, from?: string, to?: string, dimension?: string, scope?: string, companyId?: string, limit?: string, targetLabel?: string): Promise; private _oneOf; private _range; } //# sourceMappingURL=tokenusage.admin.controller.d.ts.map