import { Hooks } from './core/hooks'; import { BaseEditor } from './editors/baseEditor'; import { CellCoords, CellRange } from './3rdparty/walkontable/src'; import type { HotInstance } from './core/types'; import type { GridSettings as GridSettingsType } from './core/settings'; import type { ColumnSettings as ColumnSettingsType, CellProperties as CellPropertiesType, CellMeta as CellMetaType, CellChange as CellChangeType, ChangeSource as ChangeSourceType, RowObject as RowObjectType } from './settings'; import { TextEditor } from './editors/textEditor/textEditor'; /** * Hook registry interface for Handsontable.hooks (e.g. getRegistered()). */ export interface HooksRegistry { getRegistered(): string[]; [key: string]: unknown; } /** * Interface describing the Handsontable factory function and static members. * Allows both `Handsontable(elem, opts)` and `new Handsontable(elem, opts)`. * * Covers both access patterns: * - UMD/namespace: `Handsontable.editors.DateEditor`, `Handsontable.plugins.AutoColumnSize` * - ESM/modular: `import { DateEditor } from 'handsontable/editors'` */ interface HandsontableFactory { (rootElement: HTMLElement, userSettings?: GridSettingsType): HotInstance; new (rootElement: HTMLElement, userSettings?: GridSettingsType): HotInstance; Core: new (rootElement: HTMLElement, userSettings?: GridSettingsType) => HotInstance; DefaultSettings: Record; hooks: Hooks; CellCoords: typeof CellCoords; CellRange: typeof CellRange; packageName: string; buildDate: string | undefined; version: string | undefined; languages: { dictionaryKeys: unknown; getLanguageDictionary: (languageCode: string) => object | null; getLanguagesDictionaries: () => object[]; registerLanguageDictionary: (languageCodeOrDictionary: string | Record, dictionary?: Record) => object; getTranslatedPhrase: (languageCode: string, dictionaryKey: string, argumentsForFormatters?: unknown) => string | null; [key: string]: unknown; }; /** Editor constructors accessible via the UMD namespace pattern. */ editors: { AutocompleteEditor: typeof import('./editors/autocompleteEditor').AutocompleteEditor; BaseEditor: typeof BaseEditor; CheckboxEditor: typeof import('./editors/checkboxEditor').CheckboxEditor; DateEditor: typeof import('./editors/dateEditor').DateEditor; DropdownEditor: typeof import('./editors/dropdownEditor').DropdownEditor; HandsontableEditor: typeof import('./editors/handsontableEditor').HandsontableEditor; IntlDateEditor: typeof import('./editors/intlDateEditor').IntlDateEditor; IntlTimeEditor: typeof import('./editors/intlTimeEditor').IntlTimeEditor; MultiSelectEditor: typeof import('./editors/multiSelectEditor').MultiSelectEditor; NumericEditor: typeof import('./editors/numericEditor').NumericEditor; PasswordEditor: typeof import('./editors/passwordEditor').PasswordEditor; SelectEditor: typeof import('./editors/selectEditor').SelectEditor; TextEditor: typeof TextEditor; TimeEditor: typeof import('./editors/timeEditor').TimeEditor; registerEditor: typeof import('./editors/registry').registerEditor; getEditor: typeof import('./editors/registry').getEditor; editorFactory: typeof import('./editors/factory').editorFactory; [key: string]: unknown; }; dom: typeof import('./helpers/dom/element') & typeof import('./helpers/dom/event'); helper: typeof import('./helpers/array') & typeof import('./helpers/browser') & typeof import('./helpers/data') & typeof import('./helpers/dateTime') & typeof import('./helpers/errors') & typeof import('./helpers/feature') & typeof import('./helpers/function') & typeof import('./helpers/mixed') & typeof import('./helpers/number') & typeof import('./helpers/object') & typeof import('./helpers/string') & typeof import('./helpers/unicode') & typeof import('./utils/parseTable'); themes: { hasTheme: typeof import('./themes/registry').hasTheme; getTheme: typeof import('./themes/registry').getTheme; getThemeNames: typeof import('./themes/registry').getThemeNames; getThemes: typeof import('./themes/registry').getThemes; registerTheme: typeof import('./themes/registry').registerTheme; reinitTheme: typeof import('./themes/registry').reinitTheme; [key: string]: unknown; }; /** Renderer functions accessible via the UMD namespace pattern. */ renderers: { AutocompleteRenderer: typeof import('./renderers/autocompleteRenderer').autocompleteRenderer; BaseRenderer: typeof import('./renderers/baseRenderer').baseRenderer; cellDecorator: typeof import('./renderers/baseRenderer').baseRenderer; CheckboxRenderer: typeof import('./renderers/checkboxRenderer').checkboxRenderer; DateRenderer: typeof import('./renderers/dateRenderer').dateRenderer; DropdownRenderer: typeof import('./renderers/dropdownRenderer').dropdownRenderer; HandsontableRenderer: typeof import('./renderers/handsontableRenderer').handsontableRenderer; HtmlRenderer: typeof import('./renderers/htmlRenderer').htmlRenderer; IntlDateRenderer: typeof import('./renderers/intlDateRenderer').intlDateRenderer; IntlTimeRenderer: typeof import('./renderers/intlTimeRenderer').intlTimeRenderer; NumericRenderer: typeof import('./renderers/numericRenderer').numericRenderer; PasswordRenderer: typeof import('./renderers/passwordRenderer').passwordRenderer; SelectRenderer: typeof import('./renderers/selectRenderer').selectRenderer; TextRenderer: typeof import('./renderers/textRenderer').textRenderer; TimeRenderer: typeof import('./renderers/timeRenderer').timeRenderer; registerRenderer: typeof import('./renderers/registry').registerRenderer; getRenderer: typeof import('./renderers/registry').getRenderer; rendererFactory: typeof import('./renderers/factory').rendererFactory; [key: string]: unknown; }; /** Validator functions accessible via the UMD namespace pattern. */ validators: { AutocompleteValidator: typeof import('./validators/autocompleteValidator').autocompleteValidator; DateValidator: typeof import('./validators/dateValidator').dateValidator; DropdownValidator: typeof import('./validators/dropdownValidator').dropdownValidator; IntlDateValidator: typeof import('./validators/intlDateValidator').intlDateValidator; IntlTimeValidator: typeof import('./validators/intlTimeValidator').intlTimeValidator; MultiSelectValidator: typeof import('./validators/multiSelectValidator').multiSelectValidator; NumericValidator: typeof import('./validators/numericValidator').numericValidator; TimeValidator: typeof import('./validators/timeValidator').timeValidator; registerValidator: typeof import('./validators/registry').registerValidator; getValidator: typeof import('./validators/registry').getValidator; [key: string]: unknown; }; /** Cell type objects accessible via the UMD namespace pattern. */ cellTypes: { autocomplete: typeof import('./cellTypes/autocompleteType').AutocompleteCellType; checkbox: typeof import('./cellTypes/checkboxType').CheckboxCellType; date: typeof import('./cellTypes/dateType').DateCellType; dropdown: typeof import('./cellTypes/dropdownType').DropdownCellType; handsontable: typeof import('./cellTypes/handsontableType').HandsontableCellType; intlDate: typeof import('./cellTypes/intlDateType').IntlDateCellType; intlTime: typeof import('./cellTypes/intlTimeType').IntlTimeCellType; numeric: typeof import('./cellTypes/numericType').NumericCellType; password: typeof import('./cellTypes/passwordType').PasswordCellType; select: typeof import('./cellTypes/selectType').SelectCellType; text: typeof import('./cellTypes/textType').TextCellType; time: typeof import('./cellTypes/timeType').TimeCellType; registerCellType: typeof import('./cellTypes/registry').registerCellType; getCellType: typeof import('./cellTypes/registry').getCellType; [key: string]: unknown; }; /** Plugin classes accessible via the UMD namespace pattern (keyed by PascalCase convention). */ plugins: { AutoColumnSize: typeof import('./plugins/autoColumnSize').AutoColumnSize; Autofill: typeof import('./plugins/autofill').Autofill; AutoRowSize: typeof import('./plugins/autoRowSize').AutoRowSize; BindRowsWithHeaders: typeof import('./plugins/bindRowsWithHeaders').BindRowsWithHeaders; CollapsibleColumns: typeof import('./plugins/collapsibleColumns').CollapsibleColumns; ColumnSorting: typeof import('./plugins/columnSorting').ColumnSorting; ColumnSummary: typeof import('./plugins/columnSummary').ColumnSummary; Comments: typeof import('./plugins/comments').Comments; ContextMenu: typeof import('./plugins/contextMenu').ContextMenu; CopyPaste: typeof import('./plugins/copyPaste').CopyPaste; CustomBorders: typeof import('./plugins/customBorders').CustomBorders; DataProvider: typeof import('./plugins/dataProvider').DataProvider; Dialog: typeof import('./plugins/dialog').Dialog; DragToScroll: typeof import('./plugins/dragToScroll').DragToScroll; DropdownMenu: typeof import('./plugins/dropdownMenu').DropdownMenu; EmptyDataState: typeof import('./plugins/emptyDataState').EmptyDataState; ExportFile: typeof import('./plugins/exportFile').ExportFile; Filters: typeof import('./plugins/filters').Filters; Formulas: typeof import('./plugins/formulas').Formulas; HiddenColumns: typeof import('./plugins/hiddenColumns').HiddenColumns; HiddenRows: typeof import('./plugins/hiddenRows').HiddenRows; Loading: typeof import('./plugins/loading').Loading; ManualColumnFreeze: typeof import('./plugins/manualColumnFreeze').ManualColumnFreeze; ManualColumnMove: typeof import('./plugins/manualColumnMove').ManualColumnMove; ManualColumnResize: typeof import('./plugins/manualColumnResize').ManualColumnResize; ManualRowMove: typeof import('./plugins/manualRowMove').ManualRowMove; ManualRowResize: typeof import('./plugins/manualRowResize').ManualRowResize; MergeCells: typeof import('./plugins/mergeCells').MergeCells; MultiColumnSorting: typeof import('./plugins/multiColumnSorting').MultiColumnSorting; MultipleSelectionHandles: typeof import('./plugins/multipleSelectionHandles').MultipleSelectionHandles; NestedHeaders: typeof import('./plugins/nestedHeaders').NestedHeaders; NestedRows: typeof import('./plugins/nestedRows').NestedRows; Notification: typeof import('./plugins/notification').Notification; Pagination: typeof import('./plugins/pagination').Pagination; Search: typeof import('./plugins/search').Search; StretchColumns: typeof import('./plugins/stretchColumns').StretchColumns; TouchScroll: typeof import('./plugins/touchScroll').TouchScroll; TrimRows: typeof import('./plugins/trimRows').TrimRows; UndoRedo: typeof import('./plugins/undoRedo').UndoRedo; registerPlugin: typeof import('./plugins/registry').registerPlugin; getPlugin: typeof import('./plugins/registry').getPlugin; [key: string]: unknown; }; [key: string]: unknown; } /** * Handsontable factory function and static namespace. * Implemented as a typed const so that declaration emit produces a merge with declare namespace Handsontable. */ declare const Handsontable: HandsontableFactory; /** * Instance type: when wrappers use "Handsontable" as a type they mean the grid instance (HotInstance). */ interface Handsontable extends HotInstance { } /** * Type exports on the Handsontable namespace for wrappers (React, Angular, Vue). * Merges with the default export so that Handsontable.ColumnSettings, etc. resolve. */ declare namespace Handsontable { /** Instance type of the grid (Core). */ type Core = HotInstance; /** Cell value type (e.g. for getData/getSourceData). */ type CellValue = unknown; type GridSettings = GridSettingsType; type ColumnSettings = ColumnSettingsType; type CellProperties = CellPropertiesType; /** @deprecated Use CellProperties */ type CellMeta = CellMetaType; type CellChange = CellChangeType; type ChangeSource = ChangeSourceType; type RowObject = RowObjectType; namespace editors { type AutocompleteEditor = import('./editors/autocompleteEditor').AutocompleteEditor; type BaseEditor = import('./editors/baseEditor').BaseEditor; type CheckboxEditor = import('./editors/checkboxEditor').CheckboxEditor; type DateEditor = import('./editors/dateEditor').DateEditor; type DropdownEditor = import('./editors/dropdownEditor').DropdownEditor; type HandsontableEditor = import('./editors/handsontableEditor').HandsontableEditor; type IntlDateEditor = import('./editors/intlDateEditor').IntlDateEditor; type IntlTimeEditor = import('./editors/intlTimeEditor').IntlTimeEditor; type MultiSelectEditor = import('./editors/multiSelectEditor').MultiSelectEditor; type NumericEditor = import('./editors/numericEditor').NumericEditor; type PasswordEditor = import('./editors/passwordEditor').PasswordEditor; type SelectEditor = import('./editors/selectEditor').SelectEditor; type TextEditor = import('./editors/textEditor').TextEditor; type TimeEditor = import('./editors/timeEditor').TimeEditor; } namespace cellTypes { type autocomplete = typeof import('./cellTypes/autocompleteType').AutocompleteCellType; type checkbox = typeof import('./cellTypes/checkboxType').CheckboxCellType; type date = typeof import('./cellTypes/dateType').DateCellType; type dropdown = typeof import('./cellTypes/dropdownType').DropdownCellType; type handsontable = typeof import('./cellTypes/handsontableType').HandsontableCellType; type intlDate = typeof import('./cellTypes/intlDateType').IntlDateCellType; type intlTime = typeof import('./cellTypes/intlTimeType').IntlTimeCellType; type numeric = typeof import('./cellTypes/numericType').NumericCellType; type password = typeof import('./cellTypes/passwordType').PasswordCellType; type select = typeof import('./cellTypes/selectType').SelectCellType; type text = typeof import('./cellTypes/textType').TextCellType; type time = typeof import('./cellTypes/timeType').TimeCellType; } namespace renderers { type AutocompleteRenderer = typeof import('./renderers/autocompleteRenderer').autocompleteRenderer; type BaseRenderer = import('./renderers/baseRenderer').BaseRenderer; type cellDecorator = import('./renderers/baseRenderer').BaseRenderer; type CheckboxRenderer = typeof import('./renderers/checkboxRenderer').checkboxRenderer; type DateRenderer = typeof import('./renderers/dateRenderer').dateRenderer; type DropdownRenderer = typeof import('./renderers/dropdownRenderer').dropdownRenderer; type HandsontableRenderer = typeof import('./renderers/handsontableRenderer').handsontableRenderer; type HtmlRenderer = typeof import('./renderers/htmlRenderer').htmlRenderer; type IntlDateRenderer = typeof import('./renderers/intlDateRenderer').intlDateRenderer; type IntlTimeRenderer = typeof import('./renderers/intlTimeRenderer').intlTimeRenderer; type NumericRenderer = typeof import('./renderers/numericRenderer').numericRenderer; type PasswordRenderer = typeof import('./renderers/passwordRenderer').passwordRenderer; type SelectRenderer = typeof import('./renderers/selectRenderer').selectRenderer; type TextRenderer = typeof import('./renderers/textRenderer').textRenderer; type TimeRenderer = typeof import('./renderers/timeRenderer').timeRenderer; } namespace validators { type AutocompleteValidator = typeof import('./validators/autocompleteValidator').autocompleteValidator; type DateValidator = typeof import('./validators/dateValidator').dateValidator; type DropdownValidator = typeof import('./validators/dropdownValidator').dropdownValidator; type IntlDateValidator = typeof import('./validators/intlDateValidator').intlDateValidator; type IntlTimeValidator = typeof import('./validators/intlTimeValidator').intlTimeValidator; type MultiSelectValidator = typeof import('./validators/multiSelectValidator').multiSelectValidator; type NumericValidator = typeof import('./validators/numericValidator').numericValidator; type TimeValidator = typeof import('./validators/timeValidator').timeValidator; } namespace plugins { type AutoColumnSize = import('./plugins/autoColumnSize').AutoColumnSize; type Autofill = import('./plugins/autofill').Autofill; type AutoRowSize = import('./plugins/autoRowSize').AutoRowSize; type BindRowsWithHeaders = import('./plugins/bindRowsWithHeaders').BindRowsWithHeaders; type CollapsibleColumns = import('./plugins/collapsibleColumns').CollapsibleColumns; type ColumnSorting = import('./plugins/columnSorting').ColumnSorting; namespace ColumnSorting { type Config = import('./plugins/columnSorting').ColumnSortingConfig; } type ColumnSummary = import('./plugins/columnSummary').ColumnSummary; type Comments = import('./plugins/comments').Comments; type ContextMenu = import('./plugins/contextMenu').ContextMenu; namespace ContextMenu { type PredefinedMenuItemKey = import('./plugins/contextMenu').PredefinedMenuItemKey; type MenuItemConfig = import('./plugins/contextMenu').MenuItemConfig; } type CopyPaste = import('./plugins/copyPaste').CopyPaste; type CustomBorders = import('./plugins/customBorders').CustomBorders; namespace CustomBorders { type BorderSettings = import('./plugins/customBorders').BorderSettings; } type DataProvider = import('./plugins/dataProvider').DataProvider; namespace DataProvider { type QueryParameters = import('./plugins/dataProvider').DataProviderQueryParameters; type FetchResult = import('./plugins/dataProvider').DataProviderFetchResult; type FetchOptions = import('./plugins/dataProvider').DataProviderFetchOptions; } type Dialog = import('./plugins/dialog').Dialog; type DragToScroll = import('./plugins/dragToScroll').DragToScroll; type DropdownMenu = import('./plugins/dropdownMenu').DropdownMenu; type EmptyDataState = import('./plugins/emptyDataState').EmptyDataState; type ExportFile = import('./plugins/exportFile').ExportFile; type Filters = import('./plugins/filters').Filters; namespace Filters { type ConditionId = import('./plugins/filters').ConditionId; type OperationType = import('./plugins/filters').OperationType; } type Formulas = import('./plugins/formulas').Formulas; type HiddenColumns = import('./plugins/hiddenColumns').HiddenColumns; type HiddenRows = import('./plugins/hiddenRows').HiddenRows; type Loading = import('./plugins/loading').Loading; type ManualColumnFreeze = import('./plugins/manualColumnFreeze').ManualColumnFreeze; type ManualColumnMove = import('./plugins/manualColumnMove').ManualColumnMove; type ManualColumnResize = import('./plugins/manualColumnResize').ManualColumnResize; type ManualRowMove = import('./plugins/manualRowMove').ManualRowMove; type ManualRowResize = import('./plugins/manualRowResize').ManualRowResize; type MergeCells = import('./plugins/mergeCells').MergeCells; type MultiColumnSorting = import('./plugins/multiColumnSorting').MultiColumnSorting; type MultipleSelectionHandles = import('./plugins/multipleSelectionHandles').MultipleSelectionHandles; type NestedHeaders = import('./plugins/nestedHeaders').NestedHeaders; type NestedRows = import('./plugins/nestedRows').NestedRows; type Notification = import('./plugins/notification').Notification; type Pagination = import('./plugins/pagination').Pagination; type Search = import('./plugins/search').Search; type StretchColumns = import('./plugins/stretchColumns').StretchColumns; type TouchScroll = import('./plugins/touchScroll').TouchScroll; type TrimRows = import('./plugins/trimRows').TrimRows; type UndoRedo = import('./plugins/undoRedo').UndoRedo; } } export { CellCoords, CellRange, }; export type { GridSettings, Events } from './core/settings'; export type { CellValue, CellChange, RowObject, SourceRowData, ChangeSource, CellMeta, CellProperties, ColumnSettings } from './settings'; export type { RangeType, HotInstance } from './core/types'; export type { OverlayType } from './3rdparty/walkontable/src/types'; export type { BaseEditor as BaseEditorInstance } from './editors/baseEditor/baseEditor'; export { IndexMapper } from './translations'; export type { SelectOptionsObject } from './settings'; export type { CellType } from './cellTypes/registry'; export type { EditorType } from './editors/registry'; export type { RendererType } from './renderers/registry'; export type { ValidatorType } from './validators/registry'; export type { BaseTheme, ThemeBuilder, ThemeColorScheme, ThemeColorsConfig, ThemeConfig, ThemeDensityConfig, ThemeDensitySizes, ThemeIconsConfig, ThemeLightDarkValue, ThemeParams, ThemeSizingConfig, ThemeTokenValue, ThemeTokensConfig, } from './themes'; export default Handsontable;