import { default as React } from 'react'; import { SpreadsheetColumn, CellPosition, SelectionRange, SelectionMode, SpreadsheetMode, SpreadsheetVariant, NavigationDirection, SpreadsheetPlugin, CellStyleMap, ExcelSheetData } from './types'; import { UsePluginsResult } from './plugins'; import { ClipboardResult } from './hooks/useClipboard'; import { UndoRedoResult } from './hooks/useUndoRedo'; import { PinningResult } from './hooks/usePinning'; import { MergedCellsResult } from './hooks/useMergedCells'; import { StatusBarResult } from './hooks/useStatusBar'; import { RowHeightResizeResult } from './hooks/useRowHeightResize'; import { FormulaEngineResult } from './hooks/useFormulaEngine'; export interface SpreadsheetContextValue { data: T[]; rows: T[]; processedRows: T[]; columns: SpreadsheetColumn[]; mode: SpreadsheetMode; isViewMode: boolean; variant: SpreadsheetVariant; selectedCell: CellPosition | null; setSelectedCell: React.Dispatch>; selectionEnd: CellPosition | null; setSelectionEnd: React.Dispatch>; selectionRange: SelectionRange | null; selectionMode: SelectionMode; setSelectionMode: React.Dispatch>; editingCell: CellPosition | null; setEditingCell: React.Dispatch>; columnIndexMap: Record; firstColumnKey: string | undefined; lastColumnKey: string | undefined; lastRowIndex: number; beginSelection: (rowIndex: number, columnKey: string, options?: { extend?: boolean; mode?: SelectionMode; endCell?: CellPosition; }) => void; extendSelectionTo: (rowIndex: number, columnKey: string) => void; stopSelectionDrag: () => void; handleRowHeaderMouseDown: (event: React.MouseEvent, rowIndex: number) => void; handleColumnHeaderMouseDown: (event: React.MouseEvent, columnKey: string) => void; handleCellDoubleClick: (rowIndex: number, columnKey: string) => void; isDraggingSelectionRef: React.MutableRefObject; scrollContainerRef: React.RefObject; scrollTop: number; totalHeight: number; visibleRows: Array<{ row: T | null; rowIndex: number; offset: number; height: number; }>; handleScroll: (event: React.UIEvent) => void; getRowHeight: (index: number) => number; getRowOffset: (index: number) => number; columnWidths: Record; isResizing: string | null; handleResizeStart: (event: React.MouseEvent, columnKey: string, selectedColumnKeys?: string[]) => void; handleAutoFitColumn: (columnKey: string, selectedColumnKeys?: string[]) => void; resetColumnWidths: () => void; sortColumn: string | null; sortDirection: "asc" | "desc"; handleColumnSort: (columnKey: string) => void; isPending: boolean; searchInput: string; handleSearchChange: (value: string) => void; columnFilters: Record; setColumnFilters: React.Dispatch>>; filterSearchTerms: Record; setFilterSearchTerm: (columnKey: string, value: string) => void; openFilterDropdown: string | null; filterDropdownPosition: { top: number; left: number; } | null; toggleFilterDropdown: (columnKey: string, event: React.MouseEvent) => void; closeFilterDropdown: () => void; handleColumnFilterChange: (columnKey: string, value: string, checked: boolean) => void; clearAllFilters: () => void; selectAllColumnValues: (columnKey: string) => void; getUniqueColumnValues: (columnKey: string) => string[]; hasActiveFilters: boolean; exportToExcel: () => Promise; importFromExcel: (file: File) => Promise; exportToCSV: (fileName?: string) => void; clipboard: ClipboardResult; undoRedo: UndoRedoResult; pinning: PinningResult; mergedCells: MergedCellsResult; statusBar: StatusBarResult; showStatusBar: boolean; rowHeightResize: RowHeightResizeResult; formulaEngine: FormulaEngineResult; gridTemplateColumns: string; actionsWidth: number; setActionsWidth: React.Dispatch>; hoveredRowIndex: number | null; setHoveredRowIndex: React.Dispatch>; pendingEditRef: React.MutableRefObject<{ value: any; commit: ((val: any) => void) | null; }>; isNavigatingRef: React.MutableRefObject; updateCellValue: (rowIndex: number, column: SpreadsheetColumn, value: any, expectedContextVersion?: number) => void; commitRows: (newRows: T[], expectedContextVersion?: number) => void; resolveRowIndex: (processedIndex: number) => number; navigateAndEdit: (fromRowIndex: number, fromColumnKey: string, direction: NavigationDirection) => void; editContextVersionRef: React.MutableRefObject; formulaValue: string; formulaBarEditable: boolean; handleFormulaCommit: () => void; handleFormulaChange: (next: string) => void; handleFormulaKeyDown: (event: React.KeyboardEvent) => void; activeCellRef: string; activeCellLabel: string; selectionSizeLabel: string; maxHeight?: number | string; actionsRender?: (row: T, index: number) => React.ReactNode; actionsColumnResizable: boolean; rowClassName?: (row: T, index: number) => string | undefined; rowStyle?: (row: T, index: number) => React.CSSProperties | undefined; rowNumberRender?: (row: T, index: number) => React.ReactNode; rowNumberTitle?: (row: T, index: number) => string | undefined; isCellEditable?: (row: T, column: SpreadsheetColumn, index: number) => boolean; getRowId?: (row: T, index: number) => string | number; onRowClick?: (row: T, index: number) => void; onRowDoubleClick?: (row: T, index: number) => void; onRowContextMenu?: (row: T, index: number, event: React.MouseEvent) => void; allowKeyboardNavigation: boolean; allowColumnResize: boolean; allowFilters: boolean; allowSorting: boolean; toolbar?: React.ReactNode; toolbarLeft?: React.ReactNode; formulaBarStart?: React.ReactNode; hideFormulaBar: boolean; onSearchChange?: (search: string) => void; aiId?: string; longTextCell: { rowIndex: number; columnKey: string; value: string; } | null; setLongTextCell: React.Dispatch>; handleOpenLongText: (rowIndex: number, columnKey: string, value: string) => void; filterDropdownRef: React.RefObject; containerRef: React.RefObject; plugins?: SpreadsheetPlugin[]; pluginResult?: UsePluginsResult; /** Per-cell styles extracted from the imported Excel file */ cellStyles: CellStyleMap; /** All sheets from the last multi-sheet Excel import (null if none) */ importedSheets: ExcelSheetData[] | null; /** Index of the currently active imported sheet */ activeImportedSheetIndex: number; /** Switch to a different imported sheet by index */ setActiveImportedSheetIndex: (index: number) => void; } declare const SpreadsheetContext: React.Context | null>; export declare function SpreadsheetProvider({ value, children }: { value: SpreadsheetContextValue; children: React.ReactNode; }): import("react/jsx-runtime").JSX.Element; export declare function useSpreadsheetContext(): SpreadsheetContextValue; export default SpreadsheetContext; //# sourceMappingURL=SpreadsheetContext.d.ts.map