/**
 * Derives previous/next *trace* navigation handlers from the current traces list and the featured
 * row. Returns undefined for handlers that are out of bounds so the consumer can render
 * disabled UI. Mirrors the shape of `useTraceSpanNavigation`.
 *
 * In branches mode rows share a `traceId`, so the consumer can pass a `featuredSpanId` to
 * disambiguate the active row (and receive the new row's `spanId` on prev/next). In traces
 * mode `featuredSpanId` should be null/undefined; only the `traceId` is used.
 */
export declare function useTraceListNavigation<T extends {
    traceId: string;
    spanId?: string | null;
}>(traces: T[], featuredTraceId: string | undefined, featuredSpanId: string | null | undefined, onTraceChange: (traceId: string, spanId?: string) => void): {
    featuredTraceIdx: number;
    handlePreviousTrace: (() => void) | undefined;
    handleNextTrace: (() => void) | undefined;
};
