import { VowelRoute } from '../../types'; import { RouterAdapter } from '../../types/types'; export interface ControlledNavigationRouterOptions { /** * BroadcastChannel name for cross-tab communication * @default 'vowel-navigation' */ channelName?: string; /** * Custom config to send to controlled tab */ config?: Record; } /** * Router adapter for controlled navigation * Opens navigation in a dedicated tab to preserve voice agent session * * @example * ```ts * const router = new ControlledNavigationRouter(); * router.setRoutes(discoveredRoutes); * * // Navigate to a page (opens in separate tab) * await router.navigate('/about'); * ``` */ export declare class ControlledNavigationRouter implements RouterAdapter { private routes; private currentPath; private channel; private controlledTabConnected; private channelName; private customConfig; constructor(options?: ControlledNavigationRouterOptions); /** * Send config message to controlled tab * Called in response to init message from controlled tab */ private sendConfig; /** * Get connection status for debugging */ isControlledTabConnected(): boolean; /** * Navigate to a path * Opens URL in a controlled tab to preserve voice agent on main page * * @param path - Path to navigate to (can be relative, absolute, or full URL) */ navigate(path: string): Promise; /** * Get current path from browser location * * @returns Current pathname */ getCurrentPath(): string; /** * Get available routes * * @returns Available routes */ getRoutes(): VowelRoute[]; /** * Set routes (called after route discovery) * * @param routes - Available routes to set */ setRoutes(routes: VowelRoute[]): void; /** * Get router context for Vowel client * Provides current location and route information * * @returns Router context object */ getContext(): { location: { pathname: string; search: string; hash: string; }; routes: VowelRoute[]; currentPath: string; }; /** * Setup navigation listener to track route changes * Updates currentPath when navigation occurs */ private setupNavigationListener; } //# sourceMappingURL=router.d.ts.map