import { Gateway } from '../types/gateway'; import { RestFetch } from './restFetch'; import { PlanMeteredFeatureNumericDetails, PlanConfigurableFeatureEdge } from '../types/graphql'; interface PlanCostOptions { planID: string; features: Gateway.FeatureMap; init: RequestInit; } export interface PricingTier { cost: number; from: number; to: number; per: number; unit: string; } export declare const NUMBER_FEATURE_COIN = 10000000; /** * Convert number feature costs to float cents (NOT DOLLARS) */ export declare function featureCost(number: number): number; /** * For really, really, really cheap features that would normally display something awful like * “$0.000002345 / unit”, this figures out a sane number to display something like “$0.02 per 4,000 units”. */ export declare function oneCent(number: number): number; /** * Calculate pricing tiers for metered features */ export declare function pricingTiers(numericDetails: PlanMeteredFeatureNumericDetails): PricingTier[]; interface MeteredDisplayCost { cost: string; per?: string; } /** * User-friendly display for a measurable number feature value */ export declare function meteredFeatureDisplayValue(numericDetails: PlanMeteredFeatureNumericDetails): MeteredDisplayCost; /** * Fetch cost from our API */ export declare function planCost(restFetch: RestFetch, { planID, features, init }: PlanCostOptions): Promise; /** * Get default feature map for configurableFeatures */ export declare function configurableFeatureDefaults(configurableFeatures: PlanConfigurableFeatureEdge[]): Gateway.FeatureMap; export {};