import { ShopifyRouterAdapter } from './router'; import { ShopifyActionHandler } from './actions'; import { VowelRoute, NavigationAdapter, AutomationAdapter } from '../../types'; /** * Shopify Platform Adapter * Complete integration package for Shopify storefronts * Extends generic controlled navigation with Shopify-specific features * * @module @vowel.to/client/platforms/shopify * * @example * ```ts * import { * ShopifyRouterAdapter, * ShopifyActionHandler, * ShopifyRouteGenerator * } from '@vowel.to/client/platforms/shopify'; * import { Vowel } from '@vowel.to/client'; * * // Setup router * const router = new ShopifyRouterAdapter(); * * // Generate routes from sitemap * const generator = new ShopifyRouteGenerator(); * const routes = await generator.generateRoutes('https://mystore.com'); * router.setRoutes(routes); * * // Create Vowel client * const vowel = new Vowel({ * appId: 'your-app-id', * router, * routes * }); * * // Register Shopify actions * const actionHandler = new ShopifyActionHandler(); * const definitions = actionHandler.getActionDefinitions(); * * vowel.registerAction('searchProducts', * definitions.searchProducts, * actionHandler.searchProducts.bind(actionHandler) * ); * ``` */ export { initializeNavigationListener, initializeAutomationListener, autoInitializeAutomationListener, FuzzyDOMSearcher, DOMManipulator, snapshotForAI, generateAriaTree } from '../generic'; export type { LevenshteinSearchOptions, SearchResultElement, DOMSearchResults, AriaNode, AriaSnapshot, AriaTreeOptions } from '../generic'; export { ShopifyRouterAdapter } from './router'; export { ShopifyRouteGenerator, ShopifyUrlCategorizer } from './routes'; export { ShopifyActionHandler, ShopifyStoreManager } from './actions'; export { ShopifyNavigationAdapter, ShopifyAutomationAdapter, initializeShopifyAdapters } from './adapters'; /** * Helper function to initialize a complete Shopify integration * Sets up router, discovers routes, and registers actions * Fault-tolerant: always returns valid routes, falling back to basic routes if discovery fails * * @param config - Configuration options * @returns Initialized components * * @example * ```ts * import { initializeShopifyIntegration } from '@vowel.to/client/platforms/shopify'; * import { Vowel } from '@vowel.to/client'; * * const { router, routes, actionHandler } = await initializeShopifyIntegration({ * storeUrl: 'https://mystore.com' * }); * * const vowel = new Vowel({ * appId: 'your-app-id', * router, * routes * }); * * // Register all Shopify actions * const definitions = actionHandler.getActionDefinitions(); * Object.entries(definitions).forEach(([name, definition]) => { * vowel.registerAction(name, definition, (actionHandler as any)[name].bind(actionHandler)); * }); * ``` */ export declare function initializeShopifyIntegration(config: { storeUrl?: string; useFallbackRoutes?: boolean; }): Promise<{ router: ShopifyRouterAdapter; routes: VowelRoute[]; actionHandler: ShopifyActionHandler; }>; /** * Initialize Shopify integration with dual adapters (NEW) * Uses the modern dual-adapter architecture with NavigationAdapter and AutomationAdapter * * @param config - Configuration options * @returns Initialized adapters, routes, and action handler * * @example * ```ts * import { initializeShopifyDualAdapters } from '@vowel.to/client/platforms/shopify'; * import { Vowel } from '@vowel.to/client'; * * const { navigationAdapter, automationAdapter, routes, actionHandler } = * await initializeShopifyDualAdapters({ * storeUrl: 'https://mystore.com' * }); * * const vowel = new Vowel({ * appId: 'your-app-id', * navigationAdapter, * automationAdapter, * routes, * floatingCursor: { enabled: true } * }); * * // Register all Shopify actions * const definitions = actionHandler.getActionDefinitions(); * Object.entries(definitions).forEach(([name, definition]) => { * vowel.registerAction(name, definition, (actionHandler as any)[name].bind(actionHandler)); * }); * ``` */ export declare function initializeShopifyDualAdapters(config: { storeUrl?: string; useFallbackRoutes?: boolean; navigationChannelName?: string; automationChannelName?: string; }): Promise<{ navigationAdapter: NavigationAdapter; automationAdapter: AutomationAdapter; routes: VowelRoute[]; actionHandler: ShopifyActionHandler; }>; //# sourceMappingURL=index.d.ts.map