import * as z from "zod/v4-mini"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import { AttachedCustomField, AttachedCustomField$Outbound } from "./attachedcustomfield.js"; import { Benefit, Benefit$Outbound } from "./benefit.js"; import { LegacyRecurringProductPrice, LegacyRecurringProductPrice$Outbound } from "./legacyrecurringproductprice.js"; import { MetadataOutputType, MetadataOutputType$Outbound } from "./metadataoutputtype.js"; import { ProductMediaFileRead, ProductMediaFileRead$Outbound } from "./productmediafileread.js"; import { ProductPrice, ProductPrice$Outbound } from "./productprice.js"; import { ProductVisibility } from "./productvisibility.js"; import { SubscriptionRecurringInterval } from "./subscriptionrecurringinterval.js"; import { TrialInterval } from "./trialinterval.js"; export type Prices = LegacyRecurringProductPrice | ProductPrice; /** * A product. */ export type Product = { /** * The ID of the object. */ id: string; /** * Creation timestamp of the object. */ createdAt: Date; /** * Last modification timestamp of the object. */ modifiedAt: Date | null; /** * The interval unit for the trial period. */ trialInterval: TrialInterval | null; /** * The number of interval units for the trial period. */ trialIntervalCount: number | null; /** * The name of the product. */ name: string; /** * The description of the product. */ description: string | null; visibility: ProductVisibility; /** * The recurring interval of the product. If `None`, the product is a one-time purchase. */ recurringInterval: SubscriptionRecurringInterval | null; /** * Number of interval units of the subscription. If this is set to 1 the charge will happen every interval (e.g. every month), if set to 2 it will be every other month, and so on. None for one-time products. */ recurringIntervalCount: number | null; /** * Whether the product is a subscription. */ isRecurring: boolean; /** * Whether the product is archived and no longer available. */ isArchived: boolean; /** * The ID of the organization owning the product. */ organizationId: string; metadata: { [k: string]: MetadataOutputType; }; /** * List of prices for this product. */ prices: Array; /** * List of benefits granted by the product. */ benefits: Array; /** * List of medias associated to the product. */ medias: Array; /** * List of custom fields attached to the product. */ attachedCustomFields: Array; }; /** @internal */ export declare const Prices$inboundSchema: z.ZodMiniType; /** @internal */ export type Prices$Outbound = LegacyRecurringProductPrice$Outbound | ProductPrice$Outbound; /** @internal */ export declare const Prices$outboundSchema: z.ZodMiniType; export declare function pricesToJSON(prices: Prices): string; export declare function pricesFromJSON(jsonString: string): SafeParseResult; /** @internal */ export declare const Product$inboundSchema: z.ZodMiniType; /** @internal */ export type Product$Outbound = { id: string; created_at: string; modified_at: string | null; trial_interval: string | null; trial_interval_count: number | null; name: string; description: string | null; visibility: string; recurring_interval: string | null; recurring_interval_count: number | null; is_recurring: boolean; is_archived: boolean; organization_id: string; metadata: { [k: string]: MetadataOutputType$Outbound; }; prices: Array; benefits: Array; medias: Array; attached_custom_fields: Array; }; /** @internal */ export declare const Product$outboundSchema: z.ZodMiniType; export declare function productToJSON(product: Product): string; export declare function productFromJSON(jsonString: string): SafeParseResult; //# sourceMappingURL=product.d.ts.map