import { AptlyBaseSchema } from './extends.js'; import { AptlyMediaSrcSchema } from './media.js'; import { AptlyModuleSchema } from './module.js'; import { AptlyOrganizationSchema } from './organization.js'; export declare enum AptlyPlanRecurring { None = 0, Monthly = 1, Yearly = 12 } export declare enum AptlyPlanTier { Free = 0, Subscription = 1 } export type AptlyPlan = AptlyPlanSchema; export interface AptlyPlanSchema extends AptlyBaseSchema { tier: AptlyPlanTier; isDefaultFreeTier: boolean; isDefaultSubscriptionTier: boolean; slug: string; info: string; description: string; media: AptlyMediaSrcSchema | null; modules: (ID | AptlyModuleSchema)[]; listed: boolean; featuredWeight: number; organization: ID | AptlyOrganizationSchema | null; copiedPlan: ID | null; trialDays: number; freeRecurringDays: number; recurring: AptlyPlanRecurring; recurringAt: DATE | null; expiresAt: DATE | null; subscription: { monthly: number; yearly: number; }; lastPaymentAt: DATE | null; nextPaymentAt: DATE | null; user: { monthlyQuantity: number; monthly: number; }; unit: { freeQuantity: number; amount: number; }; order: { percent: number; paymentPercent: number; }; offer: { freeQuantity: number; monthlyQuantity: number; amount: number; }; signage: { freeQuantity: number; amount: number; signee: number; }; } export type AptlyPlanInstalled = AptlyPlanInstalledSchema; export interface AptlyPlanInstalledSchema extends AptlyPlanSchema { organization: ID; copiedPlan: ID; listed: false; lastPaymentAt: DATE; nextPaymentAt: DATE; recurringAt: DATE; }