export interface Price {
    monthly?: number;
    upfront?: number;
}
export interface Discount {
    monthly?: number;
    upfront?: number;
    monthsCount?: number;
}
export interface Item {
    type?: string;
    name?: string;
    icon?: string;
    image?: string;
    price?: Price;
    isSubitem?: boolean;
    isOptional?: boolean;
    isMandatory?: boolean;
    discount?: Discount;
    monthsFree?: number;
    tooltip?: string;
    badge?: string;
}
export interface DiscountPeriod {
    start: number;
    end: number;
    price: Price;
    discount: Discount;
}
export interface FormattedPeriod {
    name: string;
    price: Price;
    discount: Discount;
}
/**
 *
 * Calculate total payments for each month
 * upfront price is shown just in the first row if its set
 * monthly prices are shown with striked out discounts above the price
 *
 * @param items - cart items raw data
 * @param commitment - commitment in months
 *
 */
export default function generateTotal(items: Item[], hideFirst?: boolean, commitment?: number): FormattedPeriod[];
