import type { NotificationNormalizedOptions } from './notification'; /** * Renders toast containers and individual notification elements. Used only by the Notification plugin. */ export declare class NotificationUI { #private; /** * @param {object} params Constructor parameters. * @param {HTMLElement} params.overlayElement Handsontable root overlays layer element. * @param {function(string, string): string | undefined} params.sanitizer Sanitizer for HTML strings. * @param {boolean} params.isRtl Whether the grid uses RTL layout. */ constructor({ overlayElement, sanitizer, isRtl }: { overlayElement: HTMLElement; sanitizer: ((html: string, context: string) => string | undefined) | null | undefined; isRtl: boolean; }); /** * Creates the notification host and four corner stack elements inside the overlays layer (`ht-overlay`). */ install(): void; /** * @returns {HTMLElement | null} */ getHost(): HTMLElement | null; /** * @param {string} position Stack key. * @returns {HTMLElement | undefined} */ getStack(position: string): HTMLElement | undefined; /** * Updates RTL direction on the host. * * @param {boolean} isRtl Whether the grid uses RTL layout. */ setRtl(isRtl: boolean): void; /** * Updates the HTML sanitizer used for string notification messages. * * @param {function(string, string): string | undefined} sanitizer Sanitizer from Handsontable settings, if any. */ setSanitizer(sanitizer: ((html: string, context: string) => string | undefined) | null | undefined): void; /** * Builds a toast element from normalized options. * * @param {object} options Normalized notification options (id, variant, title, message, closable, actions). * @param {string} closeLabel Translated label for the close control. * @param {boolean} animation Whether enter animation is enabled. * @returns {{ element: HTMLElement }} */ createToastElement(options: NotificationNormalizedOptions, closeLabel: string, animation: boolean): { element: HTMLElement; }; /** * @param {HTMLElement} toastEl Toast root element. * @returns {HTMLElement[]} */ static getFocusables(toastEl: HTMLElement): HTMLElement[]; /** * Enables or disables sequential keyboard focus for notification controls. When disabled, controls stay * out of the tab order so opening a toast does not move focus; screen readers still receive `aria-live` updates. * * @param {HTMLElement | null} host Notification plugin host element. * @param {boolean} enabled Whether controls participate in tab navigation. */ static setSequentialFocusWithinHost(host: HTMLElement | null, enabled: boolean): void; /** * Detaches the host from the DOM and clears internal stack references. */ destroy(): void; }