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<string>;
    /** 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