import type { ResponseErrors } from "@shopify/graphql-client"; import { StorefrontContext, SwishProductsMetafieldOptions } from "../options/types"; import { LoadProductArgs } from "./load-product"; import { LoadProductIdArgs } from "./load-product-id"; import { LoadProductImagesArgs } from "./load-product-images"; import { LoadProductRecommendationsArgs } from "./load-product-recommendations"; export * from "./load-product"; export * from "./load-product-recommendations"; export * from "./types/storefront.generated"; export type { SelectedOptionInput } from "./types/storefront.types"; export interface StorefrontApiResponse { data: TData; errors: ResponseErrors; } export declare const API_VERSION = "2026-04"; export interface StorefrontApiOptions { storeDomain: string; accessToken: string; } export declare class StorefrontApiClient { private readonly client; private readonly shortCache; private readonly longCache; private readonly options; private readonly context; private readonly metafields; constructor(options: StorefrontApiOptions, context: StorefrontContext, metafields?: SwishProductsMetafieldOptions); fetch(input: string | URL | Request, init?: RequestInit): Promise; query: >(query: string, variables: TVariables) => Promise<{ data: (TData extends undefined ? any : TData) | undefined; errors: ResponseErrors | null; }>; loadProduct: (args: ArgsWithoutDefaults) => 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: ResponseErrors | null; }>; loadProductImages: (args: ArgsWithoutDefaults) => Promise<{ data: (Pick | undefined)[]; errors: null; } | { data: null; errors: Error; }>; loadProductRecommendations: (args: ArgsWithoutDefaults) => Promise<{ data: { productRecommendations?: import("./types/storefront.types").Product[] | null; } | undefined; errors: ResponseErrors | null; }>; loadProductId: (args: LoadProductIdArgs) => Promise<{ data: import("./storefront-api-client").GetProductIdByHandleQuery | undefined; errors: ResponseErrors | null; }>; clearCache(): Promise; } type ArgsWithoutDefaults = Omit;