import { z } from "zod/v4"; import { FeatureUsageType } from "../featureEnums"; export const CreditSchemaItemSchema = z.object({ metered_feature_id: z.string(), feature_amount: z.number().optional(), credit_amount: z.number(), }); export const CreditSystemConfigSchema = z.object({ schema: z.array( z.object({ metered_feature_id: z.string(), credit_amount: z.number(), }), ), usage_type: z.nativeEnum(FeatureUsageType), }); export const ModelMarkupsSchema = z .record( z.string(), // Represents the model name in "provider/model" format, e.g. "anthropic/claude-2" z.object({ markup: z.number().min(0), // percentage markup, e.g. 20 for 20% input_cost: z.number().min(0).optional(), // $/M tokens, required for custom/ models output_cost: z.number().min(0).optional(), // $/M tokens, required for custom/ models }), ) .nullish(); export type CreditSystemConfig = z.infer; export type CreditSchemaItem = z.infer; export type ModelMarkups = z.infer;