export interface TierGroup { /** Timestamp when the tier group was created */ createdAt?: string | undefined; /** Select real_time to downgrade tier on real time balance updates. Select membership_anniversary to downgrade tier on subscription anniversary. Select tier_anniversary to downgrade tier on tier anniversary. */ downgradeStrategy?: TierGroup.DowngradeStrategy | undefined; /** Tier group unique identifier */ id?: string | undefined; /** Associated loyalty program Id */ loyaltyProgramId?: string | undefined; /** Tier group name */ name?: string | undefined; /** Order of the tiers in the group in ascending order */ tierOrder?: string[] | undefined; /** Timestamp when the tier group was last updated */ updatedAt?: string | undefined; /** Select real_time to upgrade tier on real time balance updates. Select membership_anniversary to upgrade tier on subscription anniversary. Select tier_anniversary to upgrade tier on tier anniversary. */ upgradeStrategy?: TierGroup.UpgradeStrategy | undefined; /** Schedule configuration for tier upgrades. */ upgradeSchedule?: TierGroup.UpgradeSchedule | undefined; /** Schedule configuration for tier downgrades. */ downgradeSchedule?: TierGroup.DowngradeSchedule | undefined; } export declare namespace TierGroup { /** Select real_time to downgrade tier on real time balance updates. Select membership_anniversary to downgrade tier on subscription anniversary. Select tier_anniversary to downgrade tier on tier anniversary. */ const DowngradeStrategy: { readonly RealTime: "real_time"; readonly MembershipAnniversary: "membership_anniversary"; readonly TierAnniversary: "tier_anniversary"; }; type DowngradeStrategy = (typeof DowngradeStrategy)[keyof typeof DowngradeStrategy]; /** Select real_time to upgrade tier on real time balance updates. Select membership_anniversary to upgrade tier on subscription anniversary. Select tier_anniversary to upgrade tier on tier anniversary. */ const UpgradeStrategy: { readonly RealTime: "real_time"; readonly MembershipAnniversary: "membership_anniversary"; readonly TierAnniversary: "tier_anniversary"; }; type UpgradeStrategy = (typeof UpgradeStrategy)[keyof typeof UpgradeStrategy]; /** * Schedule configuration for tier upgrades. */ interface UpgradeSchedule { /** Schedule strategy type. */ strategy?: string | undefined; /** Duration value for the schedule. */ durationValue?: number | undefined; /** Duration unit for the schedule. */ durationUnit?: UpgradeSchedule.DurationUnit | undefined; /** Modifier for the duration. */ durationModifier?: UpgradeSchedule.DurationModifier | undefined; /** Scheduled date in DD/MM format. */ scheduledDate?: string | undefined; } namespace UpgradeSchedule { /** Duration unit for the schedule. */ const DurationUnit: { readonly Day: "day"; readonly Week: "week"; readonly Month: "month"; readonly Year: "year"; }; type DurationUnit = (typeof DurationUnit)[keyof typeof DurationUnit]; /** Modifier for the duration. */ const DurationModifier: { readonly StartOfPeriod: "start_of_period"; readonly EndOfPeriod: "end_of_period"; }; type DurationModifier = (typeof DurationModifier)[keyof typeof DurationModifier]; } /** * Schedule configuration for tier downgrades. */ interface DowngradeSchedule { /** Schedule strategy type. */ strategy?: string | undefined; /** Duration value for the schedule. */ durationValue?: number | undefined; /** Duration unit for the schedule. */ durationUnit?: DowngradeSchedule.DurationUnit | undefined; /** Modifier for the duration. */ durationModifier?: DowngradeSchedule.DurationModifier | undefined; /** Scheduled date in DD/MM format. */ scheduledDate?: string | undefined; } namespace DowngradeSchedule { /** Duration unit for the schedule. */ const DurationUnit: { readonly Day: "day"; readonly Week: "week"; readonly Month: "month"; readonly Year: "year"; }; type DurationUnit = (typeof DurationUnit)[keyof typeof DurationUnit]; /** Modifier for the duration. */ const DurationModifier: { readonly StartOfPeriod: "start_of_period"; readonly EndOfPeriod: "end_of_period"; }; type DurationModifier = (typeof DurationModifier)[keyof typeof DurationModifier]; } }