import type { HyperFormulaEngine, HyperFormulaClass } from './types'; import type { HotInstance } from '../../../core/types'; /** * Setups the engine instance. It either creates a new (possibly shared) engine instance, or attaches * the plugin to an already-existing instance. * * @param {Handsontable} hotInstance Handsontable instance. * @returns {null|object} Returns the engine instance if everything worked right and `null` otherwise. */ export declare function setupEngine(hotInstance: HotInstance): HyperFormulaEngine | null; /** * Registers the engine in the global register and attaches the needed event listeners. * * @param {Function} engineClass The engine class. * @param {object} hotSettings The Handsontable settings. * @param {Handsontable} hotInstance Handsontable instance. * @returns {object} Returns the engine instance. */ export declare function registerEngine(engineClass: HyperFormulaClass, hotSettings: Record, hotInstance: HotInstance): HyperFormulaEngine; /** * Returns the list of the Handsontable instances linked to the specific engine instance. * * @param {object} engine The engine instance. * @returns {Map} Returns Map with Handsontable instances. */ export declare function getRegisteredHotInstances(engine: HyperFormulaEngine): Map; /** * Removes the HOT instance from the global register's engine usage array, and if there are no HOT instances left, * unregisters the engine itself. * * @param {object} engine The engine instance. * @param {string} hotInstance The Handsontable instance. */ export declare function unregisterEngine(engine: HyperFormulaEngine, hotInstance: HotInstance): void; /** * Registers the custom functions for the engine. * * @param {Function} engineClass The engine class. * @param {Array} customFunctions The custom functions array. */ export declare function registerCustomFunctions(engineClass: HyperFormulaClass, customFunctions: Record[]): void; /** * Registers the provided language for the engine. * * @param {Function} engineClass The engine class. * @param {object} languageSetting The engine's language object. */ export declare function registerLanguage(engineClass: HyperFormulaClass, languageSetting: Record): void; /** * Registers the provided named expressions in the engine instance. * * @param {object} engineInstance The engine instance. * @param {Array} namedExpressions Array of the named expressions to be registered. */ export declare function registerNamedExpressions(engineInstance: HyperFormulaEngine, namedExpressions: Record[]): void; /** * Sets up a new sheet. * * @param {object} engineInstance The engine instance. * @param {string} sheetName The new sheet name. * @returns {*} */ export declare function setupSheet(engineInstance: HyperFormulaEngine, sheetName: string): string;