import type { Currency } from './money.js'; export type PricingModel = 'per_call' | 'balance' | 'subscription' | 'quota'; export type PricingScope = 'service' | 'tool'; export type QuotaPeriod = 'daily' | 'weekly' | 'monthly' | 'never'; export interface PerCallPricing { readonly model: 'per_call'; readonly amount: number; readonly currency: Currency; readonly scope: PricingScope; } export interface BalancePricing { readonly model: 'balance'; readonly amount: number; readonly currency: Currency; readonly scope: PricingScope; } export interface SubscriptionPricing { readonly model: 'subscription'; readonly tier?: string; readonly validFor: string; readonly price?: number; readonly currency?: Currency; readonly scope: PricingScope; } export interface QuotaPricing { readonly model: 'quota'; readonly tier?: string; readonly limit: number; readonly period: QuotaPeriod; readonly price?: number; readonly currency?: Currency; readonly scope: PricingScope; } export type SingleModelPricing = PerCallPricing | BalancePricing | SubscriptionPricing | QuotaPricing; /** * Parsed `_stipend` pricing for a tool. * * Single-model and multi-model `accepts` wire shapes both parse into this * unified representation. `accepts` always has at least one entry. */ export interface StipendPricing { readonly service?: string; readonly accepts: readonly SingleModelPricing[]; } export type AcceptsPricing = StipendPricing; /** * Parse raw `_stipend` metadata from a tool's `_stipend` namespace. * * Returns `null` if the tool has no `_stipend` metadata — the tool is free. * Throws `ValidationError` on malformed input. */ export declare function parsePricing(raw: unknown): StipendPricing | null; /** * What scope (service or tool) does this pricing entry produce when granted? */ export declare function pricingScopeFor(entry: SingleModelPricing): PricingScope; //# sourceMappingURL=pricing.d.ts.map