import { UIElementApi } from '../api/UIElementApi'; import { BaseValidatedClass } from '../BaseValidatedClass'; export declare class UIElement extends BaseValidatedClass { /** Provides access to editor functionalities specific to this UI element instance. */ api: UIElementApi; /** List of methods that must be implemented by subclasses */ private static readonly REQUIRED_METHODS; constructor(); /** * Called when the UI element should render its content into the provided container. * @param container - The HTMLElement where the UI element should be rendered. */ onRender(_container: HTMLElement): void; /** * Optional cleanup hook called when the UI element is being destroyed. * Use this to remove event listeners or perform other cleanup tasks. */ onDestroy(): void; /** * Optional method to get the current value of the UI element. * Implement this if the element manages a state or value (e.g., input fields). * @returns The current value of the element. */ getValue(): any; /** * Optional method to set the value of the UI element. * Implement this if the element manages a state or value and needs to be updated externally. * @param value - The new value to set. */ setValue(_value: any): void; /** * @description Optional hook called when one of the element's supported attributes ({@link UEAttr}) gets updated externally. * Implement this to react to attribute changes (e.g., visibility, disabled state). * @param name - The name of the attribute that was updated. * @param value - The new value of the attribute. */ onAttributeUpdated(_name: string, _value: unknown): void; /** * Gets the unique identifier for this UI element type. * This ID is used for registration and referencing within controls. * @returns A unique string ID. */ getId(): string; /** * Gets the HTML template string that defines the structure of this UI element. * @returns An HTML string. */ getTemplate(): string; }