import { BasePlugin } from '../base';
export declare const PLUGIN_KEY = "bindRowsWithHeaders";
export declare const PLUGIN_PRIORITY = 210;
/**
* @plugin BindRowsWithHeaders
* @class BindRowsWithHeaders
*
* @description
* Plugin allows binding the table rows with their headers.
*
* If the plugin is enabled, the table row headers will "stick" to the rows, when they are hidden/moved. Basically, if
* at the initialization row 0 has a header titled "A", it will have it no matter what you do with the table.
*
* @example
* ::: only-for javascript
* ```js
* const container = document.getElementById('example');
* const hot = new Handsontable(container, {
* data: getData(),
* // enable plugin
* bindRowsWithHeaders: true
* });
* ```
* :::
*
* ::: only-for react
* ```jsx
*
* ```
* :::
*
* ::: only-for angular
* ```ts
* settings = {
* data: getData(),
* bindRowsWithHeaders: true,
* };
* ```
*
* ```html
*
* ```
* :::
*/
export declare class BindRowsWithHeaders extends BasePlugin {
#private;
/**
* Returns the plugin key used to identify this plugin in Handsontable settings.
*/
static get PLUGIN_KEY(): string;
/**
* Returns the priority order used to determine the order in which plugins are initialized.
*/
static get PLUGIN_PRIORITY(): number;
/**
* Plugin indexes cache.
*
* @private
* @type {null|IndexMap}
*/
headerIndexes: Record | null;
/**
* Checks if the plugin is enabled in the handsontable settings. This method is executed in {@link Hooks#beforeInit}
* hook and if it returns `true` then the {@link BindRowsWithHeaders#enablePlugin} method is called.
*
* @returns {boolean}
*/
isEnabled(): boolean;
/**
* Enables the plugin functionality for this Handsontable instance.
*/
enablePlugin(): void;
/**
* Disables the plugin functionality for this Handsontable instance.
*/
disablePlugin(): void;
/**
* Destroys the plugin instance.
*/
destroy(): void;
}