import { ValueOf } from '@pv-frontend/pv-shared-services/common'; import { TransactionAttributes } from '../redemption/services/checkout/checkout.service'; export type PaymentDetailSavings = { max_savings: number; burn_ratio: number; max_points_value_redeemable: number; benefit_discount: number; include_points_value_in_saving: boolean; }; export declare const SI_SCHEDULE: { readonly MONTHLY: "monthly"; readonly YEARLY: "yearly"; }; export type SISchedule = ValueOf; export type SIScheduleDetails = { id: string; interval: number; period: SISchedule; external_reference_id: 'rzp_plan_id'; created_at: string; updated_at: string; }; export declare const BUNDLE_PAYMENT_MODES: { readonly DEFAULT: "Default"; readonly SCHEDULE: "Schedule"; }; export type SIPaymentModes = { mode: BundlePaymentModeTypes; data?: { schedule_details?: SIScheduleDetails[]; }; saving: PaymentDetailSavings; }; export type BundlePaymentModeTypes = ValueOf; export interface CreateRedemptionResponse { data: { id: string; type: 'user_redemption'; attributes: { id: string; status: string; details: null; redemption_option: RedemptionOption; }; }; error?: string; } export interface BundlePaymentPayload { user_redemption_id: string; schedule_id: string; amount: number; first_name: string | null; product_info: string; email: string; phone: string; transactions_attributes: TransactionAttributes[]; } export interface BundleDetailResponse { data: BundleRedemptionData; meta: Meta; } export interface IdType { id: string; type: string; } export interface BundleRedemptionResponse { data: BundleRedemptionData[]; meta: Meta; } export interface BundleRedemptionData extends IdType { attributes: BundleRedemptionDataAttributes; } export interface BundleRedemptionDataAttributes { id: string; bundle_details: BundleDetails; bundle_redemption_option: BundleRedemptionOption; redemption_type: string; redemption_value: number; redemption_option: RedemptionOption; campaign_claimable: CampaignClaimable | null; schedule_details: { period: null; interval: number; total_count: number; external_reference_id: string; }; } export interface RedemptionOption { data: RedemptionOptionData; } export interface RedemptionOptionData extends IdType { attributes: Attributes; relationships: Relationships; } export interface Attributes { id: string; campaign_id: string; } export interface Relationships { eligiblity_renewals: { data: []; }; redeemable: Redeemable; } export interface Redeemable { data: RedeemableData; } export interface RedeemableData { id: string; type: string; } export interface BundleDetails { data: PlanDetails; } export interface PlanDetails extends IdType { attributes: PlanDetailsAttributes; } export interface PlanDetailsAttributes extends IdType { id: string; title: string; description: string; amount: number; status: string; image_url: null; items: BenefitItem[]; benefit_discounts: BenefitDiscount[]; } export declare const BUNDLE_MODES_OF_PAYMENT_CONST: { readonly POINT_REDEMPTION: "point_redemption"; readonly CARD_PAYMENT: "card_payment"; readonly SCHEDULE: "schedule"; }; export type BUNDLE_MODES_OF_PAYMENT = ValueOf; export interface BenefitDiscount { applicable_on: BUNDLE_MODES_OF_PAYMENT; discount_type: 'percent'; value: number; } export declare const META_INFO_TYPES: { readonly howToRedeem: "How to Redeem"; readonly termsAndConditions: "Terms & Condition"; readonly aboutTheBrand: "About the Brand"; }; export interface BenefitItem { amount: number; data: BenefitItemData; denomination: number; quantity: number; } export interface BenefitItemData extends IdType { attributes: BenefitDetail; } export interface BenefitDetail { name: string; merchant_name: string; merchant_logo_url: string; categories: string[]; benefit_id: string; benefit_type: string; description: string; image_url: string; redemption_steps: null | string; terms: string; redemption_url: string; denominations?: string[] | number[]; price_type?: string; min_price?: number; max_price?: number; price?: number[]; end_time: null; redemption_channel: string[] | string; } export interface BundleRedemptionOption { data: BundleRedemptionOptionData; } export interface BundleRedemptionOptionData extends IdType { attributes: BundleRedemptionOptionAttributes; } export interface BundleRedemptionOptionAttributes { id: string; bundle_id: string; amount: number; } export interface CampaignClaimable { claimable: boolean; non_claimable_reason: null | string; } export interface Meta { user_campaign_point_details: null; } export type BundlePaymentModeObject = { phone: string; email: string; first_name: string | null; user_redemption_id: string; amount: number; product_info: 'Bundle'; transactions_attributes: { amount: number; txn_type: 'payment_gateway'; }[]; subscription_attributes?: { rzp_plan_id: string; total_count: number; }; campaign_id: string; client_id?: string; project_id?: string; };