import { RTERenderCustomAttributes } from '../../interface';
import { CommonAnnotation, CommonAnnotationTypeEnum } from './common-annotation.abstract';
/**
 * Annotation to add custom attributes of element
 */
export declare class CustomAttributeAnnotation extends CommonAnnotation {
  readonly type: CommonAnnotationTypeEnum.CUSTOM_ATTRIBUTE;
  customAttribute: Record<string, string>;
  private readonly BOOLEAN_ATTRS;
  constructor(customAttribute: Record<string, string>);
  /**
   * Generate the map item for the annotation
   *
   * @param {Record<string, string>} customizeAttribute - custom attribute annotation
   * @returns {[CommonAnnotationTypeEnum.CUSTOM_ATTRIBUTE, CustomAttributeAnnotation]} Map item for the annotation
   */
  static from(customizeAttribute: Record<string, string>): [CommonAnnotationTypeEnum.CUSTOM_ATTRIBUTE, CustomAttributeAnnotation];
  /**
   * Generate the JSON representation of the annotation
   *
   * @returns {Record<string, unknown>} JSON representation of the annotation
   */
  toJSON(): Record<string, unknown>;
  /**
   * Create a new custom attribute annotation
   *
   * @returns {CustomAttributeAnnotation} - Custom attribute annotation
   */
  clone(): CustomAttributeAnnotation;
  /**
   * Generate the custom attribute of current element, excluding 'style' and 'class'
   *
   * @param {string[]} filterAttr - should filter these existed attrs
   * @returns {string[]} - Custom attributes
   */
  toString(filterAttr?: string[]): string[];
  /**
   * Generate the custom attribute for the annotation
   *
   * @param {RTERenderCustomAttributes} options - should filter these certain attrs
   * @returns {Record<string, string>} custom attribute
   */
  render(options?: RTERenderCustomAttributes): Record<string, string>;
}
