export type Unsubscribe = () => void; interface ItemLinkPrice { is_on_sale?: boolean; sale_price?: string | null; price_label?: string; } export interface ItemLink { id: number; new_tab: boolean | null; position_x: string | null; position_y: string | null; link: string; title: string; image: string; shopify_product_id: number | null; prices?: ItemLinkPrice; product_is_loaded?: boolean; } interface ProductMedia { alt: string; id: number; position: number; preview_image: { aspect_ratio: number; height: number; width: number; src: string; }; aspect_ratio: number; height: number; media_type: string; src: string; width: number; } interface ProductOption { name: string; position: number; values: string[]; } export type StorefrontProductOption = { name: string; optionValues: { name: string; swatch: unknown | null; }[]; }; export type SelectProductOptionValue = { name: string; swatch: unknown | null; disabled: boolean; }; export type SelectProductOption = { name: string; optionValues: SelectProductOptionValue[]; }; interface ProductVariant { id: number; title: string; option1: string; option2: null; option3: null; sku: string; requires_shipping: boolean; taxable: boolean; featured_image: null; available: boolean; name: string; public_title: null; options: string[]; price: number; weight: number; compare_at_price: null; inventory_quantity: number; inventory_management: null; inventory_policy: string; barcode: string; } export interface Product { id: number; title: string; handle: string; description: string; published_at: string; created_at: string; vendor: string; type: string; tags: string[]; price: number; price_min: number; price_max: number; available: boolean; price_varies: boolean; compare_at_price: null; compare_at_price_min: number; compare_at_price_max: number; compare_at_price_varies: boolean; variants: ProductVariant[]; images: string[]; featured_image: string; options: ProductOption[]; url: string; media: ProductMedia[]; link: string; } interface CoverImages { medium_resolution?: string; high_resolution?: string; } export declare const carouselMediaTypes: readonly ["image", "video"]; export type CarouselMediaType = typeof carouselMediaTypes[number]; export interface CarouselMedia { id?: number; alt_tag: string; slide_id: string; type: CarouselMediaType; standard_resolution: string; original_url?: string; } interface ItemImages { id?: number; medium_resolution?: string; high_resolution?: string; alt_tag?: string; } export declare const itemDataTypes: readonly ["image", "video", "carousel", "text"]; export type ItemDataType = typeof itemDataTypes[number]; export declare const itemSources: readonly ["instagram", "custom", "file", "upload_widget"]; export type ItemSource = typeof itemSources[number]; export interface Item { alt_tag?: string; id: number; post_id: number; data_type: ItemDataType; source: ItemSource; username: string; caption: string; images: ItemImages; cover_images: CoverImages; video: string; carousel_media: CarouselMedia[]; url: string; rating: number; verified: boolean; created_time: string; links: ItemLink[]; } export type UploadItem = { source: string; imageUrl?: string; }; interface PopupHotspots { enabled: boolean; background_color: string; show_numbers: boolean; text_color: string; } export declare const displayTypes: readonly ["slider", "grid", "collage", "highlight", "upload-standalone"]; export type DisplayType = typeof displayTypes[number]; export declare const paginationTypes: readonly ["button", "infinite_scroll", "none"]; export type PaginationType = typeof paginationTypes[number]; export declare const tagsStyles: readonly ["style_1", "style_2", "style_3", "style_4"]; export type TagsStyle = typeof tagsStyles[number]; export declare const tagsWraps: readonly ["wrap", "scroll"]; export type TagsWrap = typeof tagsWraps[number]; export declare const itemAnimationTypes: readonly ["hover-animation-1", "hover-animation-2", "hover-animation-3", "hover-animation-4", "hover-animation-5"]; export type ItemAnimationType = typeof itemAnimationTypes[number]; export declare const loadMoreButtonStyles: readonly ["btn_style_1", "btn_style_2", "btn_style_3", "btn_style_4", "btn_style_5"]; export type LoadMoreButtonStyle = typeof loadMoreButtonStyles[number]; export declare const popupBuyButtonStyles: readonly ["buy_btn_style_1", "buy_btn_style_2", "buy_btn_style_3", "buy_btn_style_4", "buy_btn_style_5"]; export type PopupBuyButtonStyle = typeof popupBuyButtonStyles[number]; export declare const closeButtonTypes: readonly ["btn_type_1", "btn_type_2", "btn_type_3", "btn_type_4", "btn_type_5"]; export type CloseButtonType = typeof closeButtonTypes[number]; export declare const closeButtonPositions: readonly ["side", "corner"]; export type CloseButtonPosition = typeof closeButtonPositions[number]; export declare const closeButtonColorThemes: readonly ["dark_btn", "light_btn", "custom_btn"]; export type CloseButtonColorTheme = typeof closeButtonColorThemes[number]; export declare const closeButtonSizes: readonly ["standard", "large"]; export type CloseButtonSize = typeof closeButtonSizes[number]; export declare const arrowGraphicsTypes: readonly ["type_1", "type_2", "type_3", "type_4", "type_5"]; export type ArrowGraphicsType = typeof arrowGraphicsTypes[number]; export declare const arrowSizes: readonly ["standard", "large", "custom_arrow"]; export type ArrowSize = typeof arrowSizes[number]; export declare const desktopArrowPositions: readonly ["top", "bottom", "middle"]; export type DesktopArrowPosition = typeof desktopArrowPositions[number]; export declare const mobileArrowGraphicsTypes: readonly ["mob_type_1", "mob_type_2", "mob_type_3", "mob_type_4", "mob_type_5"]; export type MobileArrowGraphicsType = typeof mobileArrowGraphicsTypes[number]; export declare const mobileArrowPositions: readonly ["mob_top", "mob_middle"]; export type MobileArrowPosition = typeof mobileArrowPositions[number]; export declare const arrowColorThemes: readonly ["light", "dark", "custom"]; export type ArrowColorTheme = typeof arrowColorThemes[number]; export declare const mobileArrowColorThemes: readonly ["mob_light", "mob_dark", "mob_custom"]; export type MobileArrowColorTheme = typeof mobileArrowColorThemes[number]; export declare const headerTypes: readonly ["header1", "header2", "header3", "header4"]; export type HeaderType = typeof headerTypes[number]; export declare const slideshowStyles: readonly ["regular", "material", "marquee"]; export type SlideshowStyle = typeof slideshowStyles[number]; export declare const popupStyles: readonly ["standard", "feed"]; export type PopupStyle = typeof popupStyles[number]; export declare const popupImageSizes: readonly ["responsive", "fixed"]; export type PopupImageSize = typeof popupImageSizes[number]; export declare const popupProductsViewTypes: readonly ["grid_view", "list_view"]; export type PopupProductsViewType = typeof popupProductsViewTypes[number]; export declare const slideshowAligns: readonly ["start", "end", "center", "stretch", "inside", "outside"]; export type SlideshowAlign = typeof slideshowAligns[number]; export declare const slideshowArrowsPositions: readonly ["top", "bottom", "middle", "none"]; export type SlideshowArrowsPosition = typeof slideshowArrowsPositions[number]; export declare const slideshowScrollbarPositions: readonly ["top", "bottom", "middle"]; export type SlideshowScrollbarPosition = typeof slideshowScrollbarPositions[number]; export declare const slideshowPaginationStyles: readonly ["none", "dots", "animated-dots", "line"]; export type SlideshowPaginationStyle = typeof slideshowPaginationStyles[number]; export declare const highlightLayouts: readonly ["slider", "row", "zigzag", "spotlight"]; export type HighlightLayout = typeof highlightLayouts[number]; export declare const highlightHotspotsLayouts: readonly ["hotspot-tall", "hotspot-short"]; export type HighlightHotspotsLayout = typeof highlightHotspotsLayouts[number]; export declare const highlightProductsLayouts: readonly ["layout-1", "layout-2", "layout-3", "layout-4"]; export type HighlightProductsLayout = typeof highlightProductsLayouts[number]; export declare const itemStyles: readonly ["standard", "basic-1", "basic-2", "basic-3", "basic-4", "basic-5", "basic-6", "modern-1", "modern-2", "modern-3", "modern-4", "modern-5", "modern-6"]; export type ItemStyle = typeof itemStyles[number]; export declare const settingsOptions: Partial>; export declare const itemOptions: Partial>; export interface Settings { _arrowsDesktopPosition?: string; _arrowsDesktopSizeType?: string; _arrowsDesktopType?: string; _arrowsMobileColorTheme?: string; _arrowsMobilePosition?: string; _arrowsMobileType?: string; _buyButtonStyle?: string; _closeButtonColorTheme?: string; _closeButtonType?: string; add_to_cart_button_caption: string; arrow_color_theme: ArrowColorTheme; arrow_custom_box_color: string; arrow_custom_color: string; arrow_graphics_type: ArrowGraphicsType; arrow_size: ArrowSize; arrow_size_custom: number; background_color: string; close_button_color_theme: CloseButtonColorTheme; close_button_custom_box_color: string; close_button_custom_color: string; close_button_position: CloseButtonPosition; close_button_size: CloseButtonSize; close_button_type: CloseButtonType; customer_photo_item_label: string; customer_photo_item_position: number; customer_photo_upload_body: string; customer_photo_upload_button_selector: string; customer_photo_upload_complete_body: string; customer_photo_upload_complete_close_label: string; customer_photo_upload_drop_files_label: string; customer_photo_upload_form_body_placeholder: string; customer_photo_upload_form_email_placeholder: string; customer_photo_upload_form_legal_message: string; customer_photo_upload_form_name_placeholder: string; customer_photo_upload_form_send_label: string; customer_photo_upload_form_uploading: string; customer_photo_upload_title: string; customer_widget_cover: string; desktop_arrow_position: DesktopArrowPosition; direct_add_to_cart: boolean; display_type: DisplayType; font_family: string; gallery_highlight: boolean; gallery_highlight_every: number; gallery_highlight_every_start: number; gallery_mobile_photos_per_row: number; gallery_photos_count: number; gallery_photos_per_row: number; header_show_average_rating: boolean; header_show_breakdown: boolean; header_show_sort: boolean; header_type: HeaderType; hide_branding: boolean; hide_social_links: boolean; highlight_hotspots_layout: HighlightHotspotsLayout; highlight_layout: HighlightLayout; highlight_products_layout: HighlightProductsLayout; hotspots: PopupHotspots; item_reveal_content: string; item_animation_duration: number; item_animation_type: ItemAnimationType; item_hover_background_opacity: number; item_hover_border_color: string; item_hover_color_from: string; item_hover_color_to: string; item_hover_disabled: boolean; item_hover_icon: boolean; item_label_color: string; item_label_font_size: number; item_label_font_style: string; item_label_text: string; item_mobile_padding: number; item_open_link: boolean; item_padding: number; item_style: ItemStyle; item_without_product_label_text: string; load_more_border_width: number; load_more_button_color: string; load_more_button_style: LoadMoreButtonStyle; load_more_font_size: number; load_more_font_style: string; load_more_padding: string; load_more_text: string; mobile_arrow_color_theme: MobileArrowColorTheme; mobile_arrow_custom_box_color: string; mobile_arrow_custom_color: string; mobile_arrow_graphics_type: MobileArrowGraphicsType; mobile_arrow_position: MobileArrowPosition; money_format: string; multiple_filter_enabled: boolean; padding: number; pagination: PaginationType; popup_animation: boolean; popup_background_color: string; popup_background_opacity: number; popup_buy_button_background_color: string; popup_buy_button_background_hover_color: string; popup_buy_button_style: PopupBuyButtonStyle; popup_buy_button_text_color: string; popup_buy_button_text_hover_color: string; popup_custom_link_label: string; popup_disable_modal: boolean; popup_feed_show_caption: boolean; popup_feed_show_navigation_arrows: boolean; popup_feed_show_star_rating: boolean; popup_feed_sound_on: boolean; popup_image_size: PopupImageSize; popup_products_button_caption: string; popup_products_title: string; popup_products_title_disabled: boolean; popup_style: PopupStyle; popup_products_view_type: PopupProductsViewType; price_label_caption: string; primary_color: string; secondary_color: string; select_label_caption: string; selector_to_hide?: string; show_header: boolean; show_price: boolean; show_price_in_popup: boolean; show_review: boolean; slideshow_autoplay: number; slideshow_arrows_desktop_align: SlideshowAlign; slideshow_arrows_mobile_align: SlideshowAlign; slideshow_arrows_desktop_position: SlideshowArrowsPosition; slideshow_arrows_mobile_position: SlideshowArrowsPosition; slideshow_scrollbar_desktop_align: SlideshowAlign; slideshow_scrollbar_mobile_align: SlideshowAlign; slideshow_scrollbar_desktop_position: SlideshowScrollbarPosition; slideshow_scrollbar_mobile_position: SlideshowScrollbarPosition; slideshow_load_more: boolean; slideshow_video_auto_play: boolean; slideshow_mobile_photos_per_row: number; slideshow_photos_per_row: number; slideshow_crop_mode: boolean; slideshow_style: SlideshowStyle; slideshow_reverse_mode: boolean; slideshow_vertical_mode: boolean; slideshow_speed: number; slideshow_desktop_pagination_style: SlideshowPaginationStyle; slideshow_mobile_pagination_style: SlideshowPaginationStyle; star_color: string; tags_color: string; tags_active_color: string; tags_font_size: number; tags_font_weight: string; tags_padding: number; tags_reset_button_text: string; tags_style: TagsStyle; tags_wrap: TagsWrap; upload_show_star_rating: boolean; } type Money = { amount: string; currencyCode: string; }; export type CartCost = { subtotalAmount: Money; totalAmount: Money; totalDutyAmount: Money | null; totalTaxAmount: Money | null; }; export type CartDiscountAllocation = { discountedAmount: Money; }; export type CartAttribute = { key: string; value: string; }; export type ProductVariantImage = { url: string | null; altText: string | null; }; export type SelectedOption = { name: string; value: string; }; type MerchandiseProduct = { title: string; }; export type Merchandise = { availableForSale: boolean; image: ProductVariantImage | null; product: MerchandiseProduct; title: string; }; export type CartLineNode = { attributes: CartAttribute[]; cost: CartCost; discountAllocations: CartDiscountAllocation[]; id: string; merchandise: Merchandise; quantity: number; }; export type ShopifyGlobal = { country?: string; locale?: string; shop?: string; routes?: { root: string; }; currency?: { active: string; rate: string; }; }; export type StorefrontError = { message: string; }; export type StorefrontProductImage = { id: string; url: string | null; altText: string | null; }; export type StorefrontVariant = { id: string; availableForSale: boolean; image: ProductVariantImage | null; price: Money; selectedOptions: SelectedOption[]; }; export type StorefrontProductVariant = { availableForSale: boolean; selectedOptions: SelectedOption[]; }; export type StorefrontProduct = { id: string; title: string; handle: string; onlineStoreUrl: string | null; images: { nodes: StorefrontProductImage[]; }; selectedOrFirstAvailableVariant: StorefrontVariant | null; variants: StorefrontProductVariant[]; options: StorefrontProductOption[]; }; export type AjaxCartItem = { key: string; quantity: number; product_title: string; variant_title: string; featured_image: { url: string; alt: string; } | null; final_line_price: number; }; export type ShopCartState = { token: string | null; items: AjaxCartItem[]; item_count: number; total_price: number; total_discount: number; items_subtotal_price: number; original_total_price: number; currency: string; storeDomain: string | null; apiUrl: string | null; cartRouteRoot: string; isShopCartVisible: boolean; locale: { country: string; language: string; }; notAvaliableForSaleKeys: string[]; error: string | null; }; export type AjaxError = { message: string; notAvaliableForSaleKey?: string | null; isNotAvailable?: boolean; }; export type UpdateLineArgs = { lineKey: string; quantity: number; }; export interface PopupType { itemId: number; products: Product[]; productId: number; isModalOpenEventSent: boolean; popupIsOpen: boolean; sharedLinkEnable: boolean; sharedItem: Item; sharedPrevId: number; sharedNextId: number; } export type RafCallback = () => void; export type SubscribeRaf = (cb: RafCallback) => () => void; export type CSSVariables = Record; export type UppyAdapterOptions = { debug: boolean; restrictions: { maxFileSize: number; maxNumberOfFiles: number; minNumberOfFiles: number; allowedFileTypes: string[]; }; companionUrl: string; }; export type UploadedFile = { meta: Record; uploadURL?: string; size: number | null; name?: string; type: string; }; export type PostData = { caption: string; source_user_id: string; source_user_email: string; rating: number | null; }; export type PostDataField = keyof PostData; export type CustomPhotoDataItem = { id: string; storage: string; metadata: { size: number | null; filename: string; mime_type: string; }; }; export type WidgetFilters = Record; export type PreviewSettings = { filters?: string[]; settings?: Partial; [key: string]: unknown; }; export type GalleryFilters = { enabled: boolean; list: string[]; }; export type ReviewBreakdown = { rating: number; count: number; rating_percentage: number; id: number | null; }; export type GalleryReviews = { rating: number; rating_count: number; breakdown: ReviewBreakdown[]; }; export type GalleryData = { items: Item[]; settings: Settings; filters: GalleryFilters; analytics: boolean; reviews?: GalleryReviews; product_title: string; total_pages: number; gallery_id: number; shop_id: number; }; export {};