import type { HotInstance } from '../core/types'; import type { CellProperties } from '../settings'; /** * Runs source-data validator for a single cell. * * @param {unknown} value The value to validate. * @param {object} cellMeta The cell meta object. * @param {string} [source] The source identifier of the operation. * @returns {boolean} `true` when the value is valid (or no validator is configured). */ export declare function runSourceDataValidator(value: unknown, cellMeta: CellProperties, source?: string): boolean; /** * Runs source-data validators for all cells and emits one aggregated warning per cell type. * * Meta is resolved with `getCellMetaUncached`, so validation considers the global and column layers, * the declarative `cell` option, and imperative `setCellMeta` overrides — but never a `cells` function * or the `before`/`afterGetCellMeta` hooks. A cheap O(cols) column probe decides the path: * * - No column exposes a `sourceDataValidator` and no cell carries persistent per-cell meta — there is * nothing to validate, so the scan is skipped entirely. This is what keeps a large grid with a * `cells` function (but no validators) from resolving meta for the whole dataset on every load. * - Only row-independent built-in validators (`date`/`time`/`intlDate`/`intlTime`) and no persistent * per-cell meta — validation reuses one column-level meta per column (O(cols)). * - A row-dependent custom validator, or persistent per-cell meta (`cell`/`setCellMeta`) — validation * resolves each cell uncached (O(rows*cols) work, but no retained per-cell meta objects). * * @param {HotInstance} hotInstance The Handsontable instance. * @param {string} [source] The source identifier of the operation. * @returns {void} */ export declare function runSourceDataValidators(hotInstance: HotInstance, source?: string): void;