declare enum AppEnv { Sandbox = "sandbox", Live = "live" } declare enum ProductItemInterval { Minute = "minute", Hour = "hour", Day = "day", Week = "week", Month = "month", Quarter = "quarter", SemiAnnual = "semi_annual", Year = "year" } declare enum ProductStatus { Active = "active", Expired = "expired", Trialing = "trialing", Scheduled = "scheduled" } interface CustomerFeature { feature_id: string; unlimited?: boolean; interval?: ProductItemInterval | null; balance?: number; usage?: number; included_usage?: number; next_reset_at?: number; } interface CustomerProduct { id: string; name: string | null; group: string | null; status: ProductStatus; started_at: number; canceled_at: number | null; subscription_ids?: string[] | null; current_period_start?: number | null; current_period_end?: number | null; } interface Customer { autumn_id: string; created_at: number; env: AppEnv; id: string | null; name: string | null; email: string | null; fingerprint: string | null; stripe_id: string | null; products: CustomerProduct[]; add_ons: CustomerProduct[]; features: CustomerFeature[]; } interface CustomerData { name?: string; email?: string; fingerprint?: string; } interface BillingPortalResponse { customer_id: string; url: string; } export type { BillingPortalResponse as B, CustomerData as C, Customer as a };