import type { SwishApp } from "../swish"; import type { Product, ProductVariant } from "../types"; import type { SelectedOptionInput } from "./types/storefront.types"; export interface LoadResolvedProductArgs { productId?: string; productHandle?: string; variantId?: string; selectedOptions?: SelectedOptionInput[]; } export interface ResolvedProductResponse { product: Product | null; variant: ProductVariant | null; } /** * Resolves a product into a single, render-ready shape. Hides combined-listing * complexity: detects whether the product belongs to a combined listing, loads * the parent and AJAX product data if so, and returns a synthesized product * with the parent's options and matrix overlaid on the active child's base * data (title, images, metafields, etc.). * * Failures past the initial child fetch degrade gracefully with a warning log * rather than throwing. */ export declare const loadResolvedProduct: (swish: SwishApp, args: LoadResolvedProductArgs) => Promise;