import { Translations } from '../../utils/locale'; export interface Recurrance { interval_count: number; trial_period_days: number; interval: string | 'day' | 'week' | 'month' | 'year'; } export interface Tier { flat_amount?: number; flat_amount_decimal?: string; unit_amount?: number; unit_amount_decimal?: string; up_to?: number; } export interface Price { [key: string]: any; id: string; active: boolean; currency: string; recurring?: Recurrance; type: string | 'one_time' | 'recurring'; unit_amount: number; is_subscribed?: boolean; tiers?: Tier[]; billing_scheme?: 'per_unit' | 'tiered'; tiers_mode?: 'graduated' | 'volume'; currency_options?: { [key: string]: { tiers: Tier[]; unit_amount: number; }; }; } export interface Product { [key: string]: any; id: string; active: boolean; name: string; description: string; prices: Price[]; metadata: { [key: string]: string; features_es?: string; features_en?: string; description_es?: string; description_en?: string; }; call_to_action?: { label?: string; disabled?: boolean; }; highlight?: boolean; } export interface ProductWithPrice extends Product { price: Price; } export interface PreparedRecurrence { interval: string; interval_count: number; label: string; products: ProductWithPrice[]; } export interface PreparedData { recurrances: PreparedRecurrence[][]; } export declare class PricingTable { element: HTMLElement; /** * The products */ products: Product[]; prices: Price[]; extraProducts: Product[]; currency: string; hideTieredInput: boolean; alwaysShowMonthly: boolean; translations: Translations; selectedRecurrence: PreparedRecurrence; quantity: number; currentCurrency: string; _translations?: Translations; preparedData: PreparedData; productsChanged(): void; currencyChanged(): void; componentWillLoad(): Promise; generateRecurrenceLabel(recurrance: Partial, translations: Translations): any; prepareRecurrences(products: Product[], translations: Translations): PreparedRecurrence[][]; prepareData({ products, translations, prices }: { products: Product[]; translations: Translations; prices: Price[]; }): PreparedData; renderLabels(selectedRecurrence: PreparedRecurrence, recurrances: PreparedData['recurrances']): any[]; getFirst(): PreparedRecurrence; getButtonLabel(product: ProductWithPrice): any; getTieredInputAndCurrency(): any; getFooter(): any; render(): any; }