import { ID } from '../../commonStateTypes/common'; import { CompanyPayload } from '../../entity/company/companyPayload'; import { SubscriptionPayload, SubscriptionSchemaPayload } from '../../entity/subscription/subscription/subscriptionPayload'; import { SubscriptionAddOnPayload, SubscriptionAddOnSchemaPayload } from '../../entity/subscription/subscriptionAddOn/subscriptionAddOnPayload'; import { SubscriptionCouponPayload, SubscriptionCouponSchemaPayload } from '../../entity/subscription/subscriptionCoupon/subscriptionCouponPayload'; import { SubscriptionPlanPayload, SubscriptionPlanSchemaPayload } from '../../entity/subscription/subscriptionPlan/subscriptionPlanPayload'; import { SubscriptionSummaryPayload, SubscriptionSummarySchemaPayload } from '../../entity/subscription/subscriptionSummary/subscriptionSummaryPayload'; import { UserPayload } from '../../entity/user/userPayload'; import { UserRolePayload } from '../../entity/userRole/userRolePayload'; import { ZeniAPIResponse } from '../../responsePayload'; import { CompanyViewSchemaPayload } from '../companyView/companyViewPayload'; import { SubscriptionCreateData, SubscriptionUpdateData } from './subscriptionViewState'; interface SubscriptionPlansDataPayload { schema: { subscription_plan: SubscriptionPlanSchemaPayload; }; subscription_plans: SubscriptionPlanPayload[]; } export type SubscriptionPlansResponse = ZeniAPIResponse; interface SubscriptionAddOnsDataPayload { schema: { subscription_addon: Partial; }; subscription_addons: SubscriptionAddOnPayload[]; } export type SubscriptionAddOnsResponse = ZeniAPIResponse; interface SubscriptionCouponsDataPayload { schema: { subscription_coupon: SubscriptionCouponSchemaPayload; }; subscription_coupons: SubscriptionCouponPayload[]; } export type SubscriptionCouponsResponse = ZeniAPIResponse; interface SubscriptionEstimateInfoPayload { apply_end_of_term: boolean; estimate_query_hash: ID; invoice_immediately: boolean; should_prorate: boolean; subscription_addon_ids: ID[]; subscription_coupon_ids: ID[]; subscription_id: ID; subscription_plan_id: ID; tenant_id: ID; } type SubscriptionUpdatableInfoPayload = SubscriptionEstimateInfoPayload; interface SubscriptionCreatableInfoPayload extends Omit { start_date: string | null; } interface SubscriptionDetailsPayloadWithSchema extends SubscriptionPlansDataPayload, SubscriptionAddOnsDataPayload, SubscriptionCouponsDataPayload { schema: { subscription: SubscriptionSchemaPayload; subscription_addon: Partial; subscription_coupon: SubscriptionCouponSchemaPayload; subscription_plan: SubscriptionPlanSchemaPayload; subscription_summary: SubscriptionSummarySchemaPayload; }; subscription_summaries: SubscriptionSummaryPayload[]; subscriptions: SubscriptionPayload[]; } export type SubscriptionDetailsWithSchemaResponse = ZeniAPIResponse; interface SubscriptionListPayload { companies: CompanyPayload[]; schema: CompanyViewSchemaPayload; subscription_addons: SubscriptionAddOnPayload[]; subscription_coupons: SubscriptionCouponPayload[]; subscription_plans: SubscriptionPlanPayload[]; subscription_summaries: SubscriptionSummaryPayload[]; subscriptions: SubscriptionPayload[]; user_roles: UserRolePayload[]; users?: UserPayload[]; } export type SubscriptionListResponse = ZeniAPIResponse; /** * Helpers */ export declare const toSubscriptionUpdatableInfoPayload: (info: SubscriptionUpdateData, tenantId: ID, isEstimate?: boolean) => Partial; export declare const toSubscriptionCreatableInfoPayload: (info: SubscriptionCreateData, tenantId: ID, isEstimate?: boolean) => Partial; export type SubscriptionSummaryNotesResponse = ZeniAPIResponse; export {};