/**
* BlockUI blocks elements with overlays and loading indicators.
* @example
* HTML:
* ```html
*
* Lorem ipsum dolor sit amet, consectetur adipiscing elit. Inceptos imperdiet magna! Sed fusce fames tempus litora venenatis.
* Ac aliquet leo hendrerit taciti viverra? Nisl suscipit potenti accumsan quis ipsum purus cursus.
* Suspendisse ultrices morbi in purus lectus dictum porta; Commodo penatibus nec.
*
*
* ```
*
* JS:
* ```js
* import {components} from 'metronic-extension';
*
* // Initialize the component and set up event listeners.
* const target = document.querySelector('[data-ref="target"]');
* const blockButton = document.querySelector('[data-ref="blockButton"]');
* const blockUI = new components.BlockUI(target, 'Loading...', false);
*
* blockButton.addEventListener('click', () => {
* if (blockUI.isBlocked()) {
* blockUI.release();
* blockButton.textContent = 'Block';
* } else {
* blockUI.block();
* blockButton.textContent = 'Release';
* }
* });
* ```
*/
export default class BlockUI {
#private;
/**
* Create a new instance of the BlockUI class.
* @param {string|HTMLElement} element CSS selector string or HTMLElement.
* @param {string} message Message displayed during blocking.
* @param {boolean} firstBlock If true, it is blocked immediately after instance creation. Default is true.
*/
constructor(element: string | HTMLElement, message: string, firstBlock?: boolean);
/**
* Block.
* @return {BlockUI}
* @example
* ```js
* blockUI.block();
* ```
*/
block(): BlockUI;
/**
* Unblock.
* @return {BlockUI}
* @example
* ```js
* blockUI.release();
* ```
*/
release(): BlockUI;
/**
* Check if it is blocking.
* @return {boolean} True if currently blocking, false if not.
*/
isBlocked(): boolean;
/**
* Discard the loading indicator.
*/
destroy(): void;
}