/** * Shopify Site Handler * * Extracts product and collection data from Shopify stores using their * standard JSON API endpoints (/products.json, /collections.json). * * Works on any Shopify-powered store, which includes thousands of e-commerce sites. * * @see https://github.com/lagenar/shopify-scraper * @see https://shopify.dev/docs/api */ import { BaseSiteHandler, type FetchFunction, type SiteHandlerOptions, type SiteHandlerResult } from './types.js'; export declare class ShopifyHandler extends BaseSiteHandler { readonly name = "Shopify"; readonly strategy: "api:shopify"; /** * Detect if URL is a Shopify store * * We can't just check the domain - need to check for Shopify markers. * This is done by the caller before extract() is called. */ canHandle(url: string): boolean; /** * Check if a site is powered by Shopify by examining the HTML */ static isShopifySite(html: string): boolean; extract(url: string, fetch: FetchFunction, opts: SiteHandlerOptions): Promise; /** * Parse Shopify URL to determine type */ private parseShopifyUrl; /** * Extract a single product */ private extractProduct; /** * Extract a collection */ private extractCollection; /** * Extract products list */ private extractProductsList; /** * Extract collections list */ private extractCollectionsList; /** * Get base URL from any store URL */ private getBaseUrl; /** * Format a single product */ private formatProduct; /** * Format a collection with its products */ private formatCollection; /** * Format products list */ private formatProductsList; /** * Format collections list */ private formatCollectionsList; /** * Strip HTML tags from a string */ private stripHtml; } export declare const shopifyHandler: ShopifyHandler; //# sourceMappingURL=shopify-handler.d.ts.map