export type CreateCustomerPortalSessionRequest = undefined; export type CreateCustomerPortalSessionResponse = { url: string; }; export type CreateCustomerPortalSession = CreateCustomerPortalSessionResponse; export type BillingFrequency = 'monthly' | 'annually'; export type GetStripeCheckoutQuery = { sessionId?: string; }; export interface GetStripeCheckoutQueryRequest { session_id?: string; } export interface GetStripeProductsQueryRequest { product_identifier?: string; } export type GetStripeProductsQuery = { productIdentifier?: string; }; export type GetStripeProductsRequest = undefined; export interface StripeProductPrice { amount: number; interval: 'fixed' | 'recurring'; billingCycle: 'monthly' | 'annually'; } export interface StripeProductPriceResponse { amount: number; interval: 'fixed' | 'recurring'; billing_cycle: 'monthly' | 'annually'; } export interface StripeProduct { name: string; description: string; prices: StripeProductPrice[]; } export interface StripeProductResponse { name: string; description: string; prices: StripeProductPriceResponse[]; } export type GetStripeProductsResponse = StripeProductResponse[]; export type GetStripeProducts = StripeProduct[]; export type StripeCheckoutStatus = 'open' | 'complete' | 'expired'; export type GetStripeCheckoutRequest = undefined; export interface GetStripeCheckout { status: StripeCheckoutStatus; } export type GetStripeCheckoutResponse = GetStripeCheckout; export interface CreateStripeCheckoutParams { quantity: number; billingFrequency: BillingFrequency; requiredShippingCharges: boolean; productIdentifier: string; returnUrl: string; } export interface CreateStripeCheckoutRequest { quantity: number; billing_frequency: BillingFrequency; required_shipping_charges: boolean; product_identifier: string; return_url: string; } export interface CreateStripeCheckoutResponse { client_secret: string; } export interface CreateStripeCheckout { clientSecret: string; }