import { NavigationAdapter, VowelRoute } from '../../types'; /** * Configuration options for ControlledNavigationAdapter */ export interface ControlledNavigationAdapterOptions { /** * BroadcastChannel name for communication * Default: 'vowel-navigation' */ channelName?: string; /** * Optional: Array of routes * Can also be provided via Vowel config */ routes?: VowelRoute[]; /** * Optional: Callback to stop voice session (called when controlled tab requests stop) */ onStopVoiceSession?: () => void; /** * Optional: Callback to get current voice state (called when controlled tab requests it) */ onRequestVoiceState?: () => any; } /** * Controlled Navigation Adapter * * Handles cross-tab navigation for traditional sites with page reloads. * Perfect for Shopify, WordPress, and other server-rendered platforms. */ export declare class ControlledNavigationAdapter implements NavigationAdapter { private channel; private channelName; private routes; private currentPath; private onStopVoiceSession?; private onRequestVoiceState?; constructor(options?: ControlledNavigationAdapterOptions); /** * Navigate to a path by sending command via BroadcastChannel */ navigate(path: string): Promise; /** * Get current path */ getCurrentPath(): string; /** * Get available routes */ getRoutes(): Promise; /** * Set routes (useful for dynamic route updates) */ setRoutes(routes: VowelRoute[]): void; /** * Broadcast voice session state to controlled tabs * This allows the controlled tab's microphone button to mirror the main tab's state */ broadcastVoiceState(state: { isConnected: boolean; isConnecting: boolean; isUserSpeaking: boolean; isAISpeaking: boolean; isAIThinking: boolean; isResuming: boolean; }): void; /** * Set the callback for stop voice session requests from controlled tabs */ setStopVoiceSessionCallback(callback: () => void): void; /** * Set the callback for voice state requests from controlled tabs */ setRequestVoiceStateCallback(callback: () => any): void; /** * Cleanup */ cleanup(): void; } //# sourceMappingURL=controlled-navigation-adapter.d.ts.map