import type { HotInstance } from '../../core/types'; import type { CellProperties } from '../../settings'; import { BaseEditor } from '../baseEditor'; import EventManager from '../../eventManager'; import { DropdownController } from './controllers/dropdownController'; export declare const EDITOR_TYPE = "multiselect"; /** * Cell editor that lets users pick one or more values from a checkbox dropdown list. * Saves on every check/uncheck rather than on editor close. * * @private * @class MultiSelectEditor */ export declare class MultiSelectEditor extends BaseEditor { #private; /** * Overrides the base flag to keep the editor open after data changes — multiselect saves on each selection. */ _closeAfterDataChange: boolean; /** * The container element passed to `DropdownController` that holds the dropdown UI. */ dropdownContainerElement: HTMLDivElement | null; /** * The controller responsible for rendering and managing the dropdown list. */ dropdownController: DropdownController | null; /** * The event manager used to register and clean up DOM event listeners. */ eventManager: InstanceType; /** * Returns the unique editor type identifier for the multiselect editor. */ static get EDITOR_TYPE(): string; /** * Initializes the editor, creates DOM elements, and binds dropdown and hook events. */ constructor(hotInstance: HotInstance); /** * Creates the outer container, dropdown container, accessibility attributes, and the DropdownController instance. */ createElements(): void; /** * Prepares the editor for the given cell, resets the dropdown, syncs the current selection, and applies cell settings. */ prepare(row: number, col: number, prop: string | number, td: HTMLTableCellElement, value: unknown, cellProperties: CellProperties): void; /** * Delegates to the base finishEditing to complete saving or restoring the cell value. */ finishEditing(restoreOriginalValue: boolean, ctrlDown: boolean, callback?: Function): void; /** * Wires dropdown check/uncheck hooks, scroll hooks, destroy cleanup, and the search filter trigger. */ bindEvents(): void; /** * Shows the dropdown, positions it next to the edited cell, registers keyboard shortcuts, and focuses the appropriate element. */ open(event?: Event | null): void; /** * Hides the dropdown element, unregisters keyboard shortcuts, and stops the search input listener. */ close(): void; /** * Returns the currently selected values as an array to be written to the cell. */ getValue(): unknown[]; /** * No-op override — MultiSelectEditor saves data immediately on each check/uncheck event. */ setValue(): void; /** * Repositions the dropdown next to the edited cell; closes the editor if the cell is no longer rendered. */ refreshDimensions(): void; /** * Focuses the first dropdown item when search input is disabled, or the search input otherwise. */ focus(): void; /** * Returns the underlying search input element from the dropdown's input controller. */ getInputElement(): HTMLInputElement; /** * Closes the editor and resets the dropdown controller state, releasing DOM resources. */ destroy(): void; }