import { LogRecord } from '../types';
import { LogsFeaturedIds } from './use-logs-url-state';
export interface UseLogsListNavigationResult {
    /** Map each log in the list to its derived id. Pass to `<LogsListView logIdMap={...}>`. */
    logIdMap: Map<LogRecord, string>;
    /** Look up a log's id (undefined if not in the list). */
    getLogId: (log: LogRecord) => string | undefined;
    /** The currently featured log resolved from `featuredLogId`, or null. */
    featuredLog: LogRecord | null;
    /** Click handler that flips featured selection with toggle behavior, and — when a trace panel is
     *  open — syncs the trace panel to the new log's trace. Pass to `<LogsListView onLogClick={...}>`. */
    handleLogClick: (log: LogRecord) => void;
    /** Undefined when at the start of the list (disable the prev button). */
    handlePreviousLog: (() => void) | undefined;
    /** Undefined when at the end of the list (disable the next button). */
    handleNextLog: (() => void) | undefined;
}
/**
 * Derives id mapping + featured log + prev/next/click handlers for a logs list. Stateless — only
 * reads from the inputs and calls `onFeaturedChange` on selection changes.
 */
export declare function useLogsListNavigation(logs: LogRecord[], featuredLogId: string | null, onFeaturedChange: (ids: LogsFeaturedIds) => void, featuredTraceId?: string | null): UseLogsListNavigationResult;
