import { AnnotationStyle } from '../../interface';
import { CommonAnnotation, CommonAnnotationTypeEnum } from './common-annotation.abstract';
/**
 * Annotation to add custom attributes of element
 */
export declare class CustomStyleAnnotation extends CommonAnnotation {
  type: CommonAnnotationTypeEnum.CUSTOM_STYLE;
  customStyle: AnnotationStyle;
  constructor(customStyle: AnnotationStyle);
  /**
   * Generate the map item for the annotation
   *
   * @param {AnnotationStyle} customStyle - custom attribute annotation
   * @returns {[CommonAnnotationTypeEnum.CUSTOM_STYLE, CustomStyleAnnotation]} Map item for the annotation
   */
  static from(customStyle: Record<string, string>): [CommonAnnotationTypeEnum.CUSTOM_STYLE, CustomStyleAnnotation];
  /**
   * 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 {CustomStyleAnnotation} - Custom attribute annotation
   */
  clone(): CustomStyleAnnotation;
  /**
   * Generate the custom attribute for the annotation
   *
   * @returns {AnnotationStyle} custom attribute
   */
  renderStyle(): AnnotationStyle;
  /**
   * Remove the style
   *
   * @param {string[]} styleKeys - custom attribute annotation
   * @returns {AnnotationStyle} Map item for the annotation
   */
  removeStyles(styleKeys: string[]): AnnotationStyle;
  /**
   * Generate the custom style string for the annotation
   *
   * @returns {string} custom style string
   */
  toString(): string;
}
