import type { UsageStats } from '@mastra/core/observability';
import type { PricingMeter, PricingConditionOperator, PricingConditionField } from './types.js';
export declare class PricingTier {
    readonly index: number;
    readonly when?: Array<{
        field: PricingConditionField;
        op: PricingConditionOperator;
        value: number;
    }>;
    readonly rates: Partial<Record<PricingMeter, number>>;
    constructor(args: {
        index: number;
        when?: Array<{
            field: PricingConditionField;
            op: PricingConditionOperator;
            value: number;
        }>;
        rates: Partial<Record<PricingMeter, number>>;
    });
    matchesUsage(usage: UsageStats): boolean;
    hasMatchingMeterForUsage(meter: PricingMeter): boolean;
    private matchesCondition;
    private getConditionFieldValue;
}
export declare class PricingModel {
    readonly id: string;
    readonly provider: string;
    readonly model: string;
    readonly schema: string;
    readonly currency: string;
    readonly tiers: PricingTier[];
    constructor(args: {
        id: string;
        provider: string;
        model: string;
        schema: string;
        currency: string;
        tiers: PricingTier[];
    });
    getPricingTierForUsage(usage: UsageStats): PricingTier | null;
    getBasePricingTier(): PricingTier | null;
}
//# sourceMappingURL=pricing-model.d.ts.map