import { BaseApi } from './BaseApi'; import { BaseModifierApi } from './BaseModifierApi'; export interface ModulesPanelTabApi extends BaseApi, BaseModifierApi { /** * Sets the visibility of a specific UI element within the tab's scope. * @param uiElementName - The ID of the UI element to show/hide. * @param isVisible - True to show the element, false to hide it. */ setVisibility(uiElementName: string, isVisible: boolean): void; /** * @description Sets a specific attribute on a target UI element within the tab's scope. * Use attributes defined in {@link UEAttr}. * @param uiElementName - The ID of the target UI element. * @param attribute - The name of the attribute to set (should be one of UEAttr). * @param value - The value to set for the attribute. */ setUIEAttribute(uiElementName: string, attribute: string, value: unknown): void; /** * Updates the values of multiple UI elements within the tab's scope at once. * @param valuesMap - A record object where keys are UI element IDs and values are their new values. */ updateValues(valuesMap: Record): void; /** * @description Returns the current values of all UI elements managed by this tab. * @returns A record object where keys are UI element IDs and values are their current values. */ getValues(): Record; /** * Registers a callback function to be invoked when the value of a specific UI element changes. * @param uiElementName - The ID of the UI element to listen to. * @param callback - The function to call on value change, receiving the new and old values. */ onValueChanged(uiElementName: string, callback: (newValue: unknown, oldValue: unknown) => void): void; }