import type { OptionAxis, ProductVariant, VariantSelection } from "../Commerce/commerceTypes"; import type { UnitPrice } from "../../Utils/price"; import type { ProductDetailsProduct } from "./ProductDetailsProps"; export declare const DEFAULT_MAX_QUANTITY = 10; /** A product without variants sells as one variant at its own price. */ export declare const resolveVariants: (product: ProductDetailsProduct) => ProductVariant[]; /** A variant's own frames win; otherwise the frames of each picked option, in axis order. */ export declare const activeMediaIds: (product: ProductDetailsProduct, selection: VariantSelection, variant: ProductVariant | undefined) => string[] | undefined; export declare const packUnitPrice: (product: ProductDetailsProduct, selection: VariantSelection, price: number) => UnitPrice | null; export declare const firstUnpickedAxis: (axes: OptionAxis[], selection: VariantSelection) => OptionAxis | undefined; export declare const soldOutEverywhere: (variants: ProductVariant[]) => boolean; /** Real remaining stock caps the order; backorder and untracked stock fall back to the per-order ceiling. */ export declare const quantityCeiling: (variant: ProductVariant | undefined, maxQuantity: number) => number; export declare const clampQuantity: (value: number, ceiling: number) => number;