UNPKG

pricing4ts

Version:

![NPM Version](https://img.shields.io/npm/v/pricing4ts) Pricing4TS is a TypeScript-based toolkit designed to enhance the server-side functionality of a pricing-driven SaaS by enabling the seamless integration of pricing plans into the application logic. T

34 lines (33 loc) 1.47 kB
import { Feature } from './feature'; import { UsageLimit } from './usage-limit'; export interface AddOn { name: string; description?: string; price: number | string; unit: string; private: boolean; availableFor: string[]; dependsOn?: string[]; excludes?: string[]; features?: { [key: string]: Feature; }; usageLimits?: { [key: string]: UsageLimit; }; usageLimitsExtensions?: { [key: string]: UsageLimit; }; subscriptionConstraints: { minQuantity: number; maxQuantity: number; quantityStep: number; }; } export declare function getAddOnNames(addOns?: Record<string, AddOn>): string[]; export declare function getAddOnPrices(addOns?: Record<string, AddOn>): number[]; export declare function calculateAddOnsFeaturesMatrix(features: Record<string, Feature>, addOns: Record<string, AddOn>): number[][]; export declare function calculateAddOnsUsageLimitsMatrix(usageLimits: Record<string, UsageLimit>, addOns: Record<string, AddOn>): number[][]; export declare function calculateAddOnsUsageLimitsExtensionsMatrix(usageLimits: Record<string, UsageLimit>, addOns: Record<string, AddOn>): number[][]; export declare function calculateAddOnAvailableForMatrix(planNames: string[], addOns?: Record<string, AddOn>): number[][]; export declare function calculateAddOnsDependsOnOExcludesMatrix(addOns?: Record<string, AddOn>, field?: "dependsOn" | "excludes"): number[][];