import type { Handle } from "../../handle.js";
import type { HandleData } from "../types.js";
/**
 * Initialize handle data synchronously for SSR.
 * Called before rendering to populate state for useState initializer.
 *
 * @param data - Handle data from RSC payload
 * @param matched - Segment order for reduction
 */
export declare function initHandleDataSync(data: HandleData, matched?: string[]): void;
/**
 * Hook to access collected handle data.
 *
 * Returns the collected value from all route segments that pushed to this handle.
 * Re-renders when handle data changes (navigation, actions).
 *
 * @param handle - The handle to read
 * @param selector - Optional selector for performance (only re-render when selected value changes)
 *
 * @example
 * ```tsx
 * // Get all breadcrumbs
 * const breadcrumbs = useHandle(Breadcrumbs);
 *
 * // With selector - only re-render when last crumb changes
 * const lastCrumb = useHandle(Breadcrumbs, (data) => data.at(-1));
 * ```
 */
export declare function useHandle<T, A>(handle: Handle<T, A>): A;
export declare function useHandle<T, A, S>(handle: Handle<T, A>, selector: (data: A) => S): S;
//# sourceMappingURL=use-handle.d.ts.map