import { NavigationAdapter, AutomationAdapter, FloatingCursorConfig } from '../types'; /** * Preset configuration for a platform */ export interface VowelPresetConfig { /** Preset name */ name: string; /** Preset description */ description: string; /** Navigation adapter factory */ createNavigationAdapter: (options?: any) => NavigationAdapter | Promise; /** Automation adapter factory */ createAutomationAdapter: (options?: any) => AutomationAdapter | Promise; /** Floating cursor configuration */ floatingCursor?: FloatingCursorConfig; /** Additional configuration */ additionalConfig?: Record; } /** * Available preset names for public use */ export type PresetName = 'vanilla' | 'controlled' | 'extension'; /** * Internal preset names (including platform-specific presets) * ⚠️ INTERNAL USE ONLY */ export type InternalPresetName = PresetName | 'shopify'; /** * Shopify preset configuration * * ⚠️ INTERNAL USE ONLY - This preset is exclusively for the Vowel platform's * Shopify app extension and should never be exposed to or used by end users. * Regular users should use the "controlled" preset for Shopify stores. */ export declare const SHOPIFY_PRESET: VowelPresetConfig; /** * Vanilla preset configuration (SPA navigation) */ export declare const VANILLA_PRESET: VowelPresetConfig; /** * Extension preset configuration */ export declare const EXTENSION_PRESET: VowelPresetConfig; /** * Controlled preset configuration (cross-tab navigation) */ export declare const CONTROLLED_PRESET: VowelPresetConfig; /** * Preset registry - includes both public and internal presets * ⚠️ The 'shopify' preset is INTERNAL USE ONLY and should never be exposed to end users */ export declare const PRESETS: Record; /** * Get a preset by name * * @param name - Preset name (use InternalPresetName for platform-specific presets) * @returns Preset configuration * @throws Error if preset not found */ export declare function getPreset(name: InternalPresetName): VowelPresetConfig; /** * Initialize adapters from a preset * * @param presetName - Name of the preset to use * @param options - Platform-specific options * @returns Initialized navigation and automation adapters * * @example * ```ts * import { initializeFromPreset } from '@vowel.to/client/presets'; * * const { navigationAdapter, automationAdapter, floatingCursor } = * await initializeFromPreset('controlled', { * storeUrl: 'https://mystore.com' * }); * ``` */ export declare function initializeFromPreset(presetName: InternalPresetName, options?: any): Promise<{ navigationAdapter: NavigationAdapter; automationAdapter: AutomationAdapter; floatingCursor?: FloatingCursorConfig; additionalConfig: Record; }>; //# sourceMappingURL=index.d.ts.map