import type { Link, LinksBase } from './common.types'; export interface Subscription { id: string; offerId: string; offerName: string; friendlyName: string; productType?: ProductType; quantity: number; unitType: UnitType; hasPurchasableAddons: boolean; creationDate: Date; effectiveStartDate: Date; commitmentEndDate: Date; cancellationAllowedUntilDate?: Date; billingCycleEndDate?: Date; status: Status; autoRenewEnabled: boolean; isTrial: boolean; billingType: BillingType; billingCycle: BillingCycle; termDuration: TermDuration; renewalTermDuration?: string; isMicrosoftProduct: boolean; partnerId?: string; attentionNeeded: boolean; actionTaken: boolean; contractType: ContractType; links: Links; publisherName?: string; orderId: string; attributes: Attributes; entitlementId?: string; actions?: Action[]; suspensionReasons?: SuspensionReason[]; refundOption?: SubscriptionRefundableOption[]; refundableQuantity?: { totalQuantity: number; details: SubscriptionRefundableQuantityDetail[]; }; } export interface SubscriptionRefundableQuantityDetail { quantity: number; allowedUntilDateTime: Date; } export interface SubscriptionRefundableOption { type: string; expiresAt: Date; } export declare enum Action { Cancel = "Cancel", Edit = "Edit" } interface Attributes { objectType: ObjectType; etag?: string; } declare enum ObjectType { Subscription = "Subscription" } export declare enum BillingCycle { Monthly = "monthly" } export declare enum BillingType { License = "license", Usage = "usage" } export declare enum ContractType { Subscription = "subscription" } interface Links extends LinksBase { product: Link; sku: Link; availability: Link; offer?: Link; } export interface ProductType { id: string; displayName: string; } export declare enum Status { Active = "active", Deleted = "deleted", Disabled = "disabled", Suspended = "suspended", Expired = "expired" } export declare enum SuspensionReason { Expiration = "Expiration" } export declare enum TermDuration { P1M = "P1M", P1Y = "P1Y" } export declare enum UnitType { Licenses = "Licenses", UsageBased = "Usage-based" } export {};