import { Ref, ComputedRef } from 'vue'; import { GraphQLClient, Product, Cluster, Contact, Customer, MediaImageProductSearchInput, TransformationsInput } from '@propeller-commerce/propeller-sdk-v2'; export interface UseProductInfoOptions { graphqlClient: GraphQLClient; language?: Ref; taxZone?: string; user?: Ref; companyId?: Ref; /** * Scope the product fetch to specific orderlist IDs (e.g. a chosen B2B * contract). Overrides the default resolution of all the company's orderlists. */ orderlistIds?: Ref; /** * Apply the orderlist filter. Defaults to `true`; set `false` to browse * unscoped (full catalogue) for an authenticated user without a contract. */ applyOrderlists?: Ref; /** Attribute names to include in attributeResultSearchInput (productTrackAttributes). */ productTrackAttributes?: string[]; configuration?: { imageSearchFiltersGrid?: MediaImageProductSearchInput; /** Used for products (ProductInfo). */ imageVariantFiltersLarge?: TransformationsInput; /** Used for clusters (ClusterInfo). */ imageVariantFiltersMedium?: TransformationsInput; /** Alias: some configs use imageVariantFiltersSmall for product images. */ imageVariantFiltersSmall?: TransformationsInput; }; } export interface UseProductInfoReturn { product: Ref; cluster: Ref; loading: Ref; error: Ref; fetchProduct: (productId: number, imageSearchFilters?: MediaImageProductSearchInput, imageVariantFilters?: TransformationsInput) => Promise; fetchCluster: (clusterId: number, imageSearchFilters?: MediaImageProductSearchInput, imageVariantFilters?: TransformationsInput) => Promise; clusterName: ComputedRef; clusterSku: ComputedRef; clusterPrice: ComputedRef; clusterImageUrl: ComputedRef; } export declare function useProductInfo(options: UseProductInfoOptions): UseProductInfoReturn;