import * as React from 'react'; import type { TimelineGridColumnType, TimelineGridCellCoordinates } from "../../models/timelineGrid.mjs"; export interface TimelineGridRootContext { /** * The coordinates of the cell that currently owns focus within the grid. * `null` when focus is outside the grid. */ focusedCell: TimelineGridCellCoordinates | null; /** * Updates the focused cell coordinates. */ setFocusedCell: (coordinates: TimelineGridCellCoordinates) => void; /** * Clears the focused cell only if it still matches the given coordinates. */ clearFocusedCellIfMatches: (columnType: TimelineGridColumnType, rowIndex: number) => void; /** * The ordered list of column types that are rendered in the grid. * The non-empty tuple shape guarantees at least one column type at the type level. */ columnTypes: readonly [TimelineGridColumnType, ...TimelineGridColumnType[]]; /** * The total number of logical rows in the grid. * Used for keyboard navigation bounds checking (works with virtualization * where only a subset of rows are in the DOM). */ totalRowCount: number; } export declare const DEFAULT_COLUMN_TYPES: readonly ["title", "events"]; export declare const TimelineGridRootContext: React.Context; export declare function useTimelineGridRootContext(): TimelineGridRootContext;