import { AutomationAdapter, AutomationSearchOptions, AutomationSearchResults, AutomationActionResult } from '../../types'; import { FloatingCursorManager } from '../../managers/FloatingCursorManager'; /** * Controlled Automation Adapter * * Handles cross-tab DOM interaction for traditional sites with page reloads. * Perfect for Shopify, WordPress, and other server-rendered platforms. */ export declare class ControlledAutomationAdapter implements AutomationAdapter { private channel; private channelName; private pendingRequests; private readonly REQUEST_TIMEOUT; private cursorManager?; constructor(channelName?: string); /** * Set floating cursor manager for visual feedback * Note: Cursor feedback works in the same tab, not across tabs */ setFloatingCursorManager(manager: FloatingCursorManager): void; /** * Handle response from controlled tab */ private handleResponse; /** * Send command to controlled tab and wait for response */ private sendCommand; /** * Search for elements on the page */ searchElements(query: string, options?: AutomationSearchOptions): Promise; /** * Get page snapshot */ getPageSnapshot(): Promise; /** * Click an element */ clickElement(id: string, reason?: string): Promise; /** * Type text into an element */ typeIntoElement(id: string, text: string, reason?: string): Promise; /** * Focus an element */ focusElement(id: string, reason?: string): Promise; /** * Scroll to an element */ scrollToElement(id: string, reason?: string): Promise; /** * Press a key */ pressKey(key: string, reason?: string): Promise; /** * Cleanup */ cleanup(): void; } /** * Create listener for controlled tab * * Call this in the controlled tab to receive and execute automation commands. * * @param channelName - BroadcastChannel name (must match adapter) * * @example * ```ts * // In controlled tab (e.g., Shopify theme) * import { createControlledAutomationListener } from '@vowel.to/client/adapters/automation'; * * createControlledAutomationListener('vowel-automation'); * ``` */ export declare function createControlledAutomationListener(channelName?: string): () => void; //# sourceMappingURL=controlled-automation-adapter.d.ts.map