import { Days, PaddlePlanId, SubscriptionPlanAndTrialsDto, FreeTrialPackageId, PaidPackageId, Require } from "@upload-io/upload-shared-iso-lite"; export type SubscriptionPackage = PaidPackage | FreePackage | FreeTrialPackage; export interface PaidPackage { paddlePlanId: PaddlePlanId; plans: SubscriptionPlanAndTrialsDto; priceUsd: number; uploadPackageId: PaidPackageId; } export interface PaidPerpetualPackage { paddlePlanId: PaddlePlanId; plans: Require, "base">; priceUsd: number; uploadPackageId: PaidPackageId; } export interface FreePackage { paddlePlanId: undefined; plans: SubscriptionPlanAndTrialsDto; priceUsd: 0; uploadPackageId: FreeTrialPackageId; // We'd make this a superset of 'FreeTrialPackageId' if we offered a free package. } export interface FreeTrialPackage extends FreePackage { isFreeTrailFor: PaidPackageId; uploadPackageId: FreeTrialPackageId; }