import { StorefrontApiClient, StorefrontApiResponse } from "./storefront-api-client"; import type { CountryCode, HasMetafieldsIdentifier, LanguageCode } from "./types/storefront.types"; import type { Product, ProductVariant } from "../types"; export type LoadProductResponse = StorefrontApiResponse<{ product: Product | null; variant: ProductVariant | null; }>; export type { GetProductQueryVariables } from "./types/storefront.generated"; export interface LoadProductArgs { productId?: string; productHandle?: string; variantId?: string; selectedOptions?: { name: string; value: string; }[]; productMetafields?: HasMetafieldsIdentifier[]; variantMetafields?: HasMetafieldsIdentifier[]; country: CountryCode; language: LanguageCode; } export declare const loadProduct: (client: StorefrontApiClient, { productId, productHandle, variantId, selectedOptions, productMetafields, variantMetafields, country, language, }: LoadProductArgs) => Promise<{ data: { product: (Pick & { variant?: import("./types/storefront.types").Maybe & { compareAtPrice?: import("./types/storefront.types").Maybe>; image?: import("./types/storefront.types").Maybe>; price: Pick; selectedOptions: Array>; metafields: Array>>; }>; category?: import("./types/storefront.types").Maybe>; compareAtPriceRange: { maxVariantPrice: Pick; minVariantPrice: Pick; }; featuredImage?: import("./types/storefront.types").Maybe>; images: { nodes: Array>; }; metafields: Array>>; selectedOrFirstAvailableVariant?: import("./types/storefront.types").Maybe & { compareAtPrice?: import("./types/storefront.types").Maybe>; image?: import("./types/storefront.types").Maybe>; price: Pick; selectedOptions: Array>; metafields: Array>>; }>; options: Array & { optionValues: Array & { swatch?: import("./types/storefront.types").Maybe & { image?: import("./types/storefront.types").Maybe<{ previewImage?: import("./types/storefront.types").Maybe>; }>; }>; firstSelectableVariant?: import("./types/storefront.types").Maybe & { image?: import("./types/storefront.types").Maybe>; }>; }>; }>; priceRange: { maxVariantPrice: Pick; minVariantPrice: Pick; }; variantsCount?: import("./types/storefront.types").Maybe>; }) | null; variant: (Pick & { compareAtPrice?: import("./types/storefront.types").Maybe>; image?: import("./types/storefront.types").Maybe>; price: Pick; selectedOptions: Array>; metafields: Array>>; }) | null; }; errors: import("@shopify/graphql-client").ResponseErrors | null; }>;