import { ControlApi } from '../api/ControlApi'; import { CssNodeModifier, HtmlNodeModifier } from '../modifications/HtmlCssNodeModifier'; import { ImmutableHtmlNode } from '../modifications/ImmutableNode'; import { ModificationDescription } from '../modifications/ModificationDescription'; import { TemplateModifier } from '../modifications/TemplateModifier'; import { ControlLabels } from './ControlLabels'; /** * @description base class for extension controls extending built in editor controls */ export declare abstract class BuiltInControl { api: ControlApi; /** * @description returns extended control identifier to be referenced in {@link SettingsPanelRegistry} or templates */ abstract getId(): string; /** * @description returns parent control identifier from the list {@link BuiltInControlTypes} of available controls */ abstract getParentControlId(): string; /** * @description returns map of nodes parent control operates on */ getTargetNodes(root: ImmutableHtmlNode): ImmutableHtmlNode[] | undefined; /** * @description returns map of labels used by parent control UI */ getLabels(): ControlLabels | undefined; /** * @description returns custom description for parent modifications */ getModificationDescription(): ModificationDescription | undefined; /** * @description returns custom modifications to be included in the parent control patch */ getAdditionalModifications(_root: ImmutableHtmlNode): TemplateModifier | undefined; /** * Determines whether the specified HTML node is visible. * * @param _node - The HTML node to evaluate for visibility, provided as an immutable object. * @return A boolean value indicating whether the node is visible. Returns `true` if the node is visible, otherwise `false`. */ isVisible(_node: ImmutableHtmlNode): boolean; }