import type { ServiceApiProtocol } from './service-api.js'; export declare const UNIT_BILLING_UNITS_V1: readonly ["output_images", "completed_requests", "video_generations", "video_seconds"]; export declare const UNIT_BILLING_MATCH_KEYS_V1: readonly ["model", "size", "quality", "resolution"]; export type UnitBillingUnitV1 = (typeof UNIT_BILLING_UNITS_V1)[number]; export type UnitBillingMatchKeyV1 = (typeof UNIT_BILLING_MATCH_KEYS_V1)[number]; export interface UnitBillingComponentV1 { unit: UnitBillingUnitV1; priceUsd: number; match?: Partial>; } export interface UnitBillingModelV1 { version: 1; components: UnitBillingComponentV1[]; } export type ServiceUnitBillingModelsV1 = Record>>; export interface UnitBillingUsage { units: Partial>; } export interface UnitBillingUsageReportV1 { version: 1; units: Partial>; } export interface UnitBillingContext { sellerPeerId: string; provider: string; service: string; serviceApiProtocol: ServiceApiProtocol; attributes?: Partial>; unitLimits?: Partial>; } export declare const GENERATED_IMAGE_OUTPUT_UNIT_V1 = "output_images"; export declare const FREE_UNIT_BILLING_MODEL_V1: UnitBillingModelV1; export declare const UNIT_BILLING_UNIT_SET_V1: Set; export declare const UNIT_BILLING_MATCH_KEY_SET_V1: Set; export declare function isUnitBillingUnitV1(value: string): value is UnitBillingUnitV1; export declare function isUnitBillingMatchKeyV1(value: string): value is UnitBillingMatchKeyV1; export declare function isValidUnitBillingComponentV1(component: UnitBillingComponentV1): boolean; export declare function unitUsageToBillingReport(usage: UnitBillingUsage): UnitBillingUsageReportV1; export declare function validateUnitBillingModelV1(model: UnitBillingModelV1): string[]; export declare function isFreeUnitBillingModel(model: UnitBillingModelV1): boolean; export declare function evaluateUnitBilling(model: UnitBillingModelV1, context: UnitBillingContext, usage: UnitBillingUsage): bigint; export declare function validateUnitBillingUsageReportV1(report: UnitBillingUsageReportV1): string[]; export declare function unitUsageFromReport(report: UnitBillingUsageReportV1): UnitBillingUsage; export declare function validateUnitBillingUsage(model: UnitBillingModelV1, context: UnitBillingContext, report: UnitBillingUsageReportV1, sellerCost: bigint, costToleranceMultiplier: number, observedUsage?: UnitBillingUsage): bigint; export declare function usdToMicroUsdc(value: number): bigint; //# sourceMappingURL=billing.d.ts.map