export interface UseTreeNavigationOptions { /** Base path that precedes the dynamic segments (e.g., '/dev/tests') */ basePath: string; /** Whether to auto-expand folders leading to selected path (default: true) */ autoExpandPath?: boolean; /** Optional callback when path changes */ onPathChange?: (path: string | null) => void; } export interface UseTreeNavigationReturn { /** Currently selected path (relative, without basePath) */ selectedPath: string | null; /** Set of expanded folder paths */ expandedFolders: Set; /** Navigate to a file path */ navigateToFile: (path: string) => void; /** Toggle folder expansion */ toggleFolder: (path: string) => void; /** Expand a folder without navigation */ expandFolder: (path: string) => void; /** Collapse a folder */ collapseFolder: (path: string) => void; /** Check if path is within current selection */ isPathInSelection: (path: string) => boolean; /** Clear selection (navigate to base) */ clearSelection: () => void; } /** * Hook for tree navigation with URL synchronization * * Provides bidirectional sync between URL pathname and tree selection state. * Auto-expands folders leading to the selected file. * * @example * ```tsx * const { * selectedPath, * expandedFolders, * navigateToFile, * toggleFolder, * } = useTreeNavigation({ basePath: '/dev/tests' }) * * // URL: /dev/tests/auth/login.bdd.md * // selectedPath: 'auth/login.bdd.md' * // expandedFolders: Set(['auth']) * ``` */ export declare function useTreeNavigation(options: UseTreeNavigationOptions): UseTreeNavigationReturn; //# sourceMappingURL=useTreeNavigation.d.ts.map