import { BillingAccount, SubscriptionDetails } from './subscription'; import { Amount } from './offer'; export enum TransitionType { Immediate = 'immediate', EndOfTerm = 'endOfTerm' } export interface TransitionInfoRequestOptions { offerId: string; countryCode: string; type: TransitionType; } export interface TransitionOption { offerId: string; term: string; name: string; price: number; cost: number; annualSavings: number; } export interface TransitionInfoResponse { subscriptionNumber: string; productName: string; currentTerm: string; currentPrice: number; trialPrice?: number; accountNumber: string; balancePreview: number; currency: string; symbol: string; billingAccount: BillingAccount; upgradeType: string; upgradeTypeReason: string; upgradeOptions: Array; } export interface SubscriptionTransition { subscriptionNumber: string; accountNumber: string; subscriptionAfter: SubscriptionDetails; cost: Amount; effectiveStartDate: string; renewalDate: string; } export interface SubscriptionCancellationResponse { status: number; success: boolean; cancellationEffectiveDate: string; subscriptionKey: string; } export interface UndoCancelSubscriptionResponse { status: number; success: boolean; } export interface UndoStepUpResponse { status: number; success: boolean; subscriptionAfter: SubscriptionDetails; } export interface DowngradeOptionsResponse { offerId: string; percent?: number; friendlyName: string; specialCaseDiscountType?: string; }