import { Ref } from 'vue'; import { CrossupsellType, GraphQLClient, Product, Cluster, Contact, Customer, MediaImageProductSearchInput, TransformationsInput } from '@propeller-commerce/propeller-sdk-v2'; export interface FetchCrossupsellsInput { productId?: number; clusterId?: number; types?: CrossupsellType[]; } export interface UseProductSliderOptions { graphqlClient: GraphQLClient; language?: Ref; taxZone?: string; user?: Ref; companyId?: Ref; configuration?: { /** The channel's anonymous user — logged-out listings are scoped to it. */ anonymousUserId?: number; imageSearchFiltersGrid?: MediaImageProductSearchInput; imageVariantFiltersMedium?: TransformationsInput; }; } export interface UseProductSliderReturn { products: Ref<(Product | Cluster)[]>; loading: Ref; error: Ref; canScrollLeft: Ref; canScrollRight: Ref; fetchCrossupsells: (input: FetchCrossupsellsInput) => Promise; fetchProducts: (productIds: number[], clusterIds?: number[]) => Promise; scrollLeft: (containerEl: HTMLElement, itemWidth?: number) => void; scrollRight: (containerEl: HTMLElement, itemWidth?: number) => void; onScroll: (containerEl: HTMLElement) => void; } export declare function useProductSlider(options: UseProductSliderOptions): UseProductSliderReturn;