import { NodeAnnotation, NodeAnnotationTypeEnum } from './node-annotation.abstract';
import { Nullable } from '../../../../types/general';
import { AnnotationStyle, RTERenderContext } from '../../interface';
import { VegaRichTextImageEditorSizeType } from '../../vega-rich-text-image-editor/types';
/**
 * Annotation for image
 */
export declare class ImageAnnotation extends NodeAnnotation {
  static BASE_STYLES: AnnotationStyle;
  readonly type: NodeAnnotationTypeEnum;
  size: Nullable<VegaRichTextImageEditorSizeType>;
  alt: string;
  constructor(size: Nullable<VegaRichTextImageEditorSizeType>, alt: string);
  /**
   * Generate the map item for the annotation
   *
   * @param {string} size - Image size
   * @param {string} alt - Image alt
   * @returns {[NodeAnnotationTypeEnum.IMAGE, ImageAnnotation]} Map item for the annotation
   */
  static from(size: Nullable<VegaRichTextImageEditorSizeType>, alt: string): [NodeAnnotationTypeEnum.IMAGE, ImageAnnotation];
  /**
   * Get the default standalone base styles for an image node.
   *
   * @returns {AnnotationStyle} The default styles.
   */
  static getDefaultStyles(): AnnotationStyle;
  /**
   * Generate the JSON representation of the annotation
   *
   * @returns {Nullable<Record<string, unknown>>} JSON representation of the annotation
   */
  toJSON(): Nullable<Record<string, unknown>>;
  /**
   * @inheritDoc
   */
  clone(): ImageAnnotation;
  /**
   * @inheritDoc
   */
  renderClass(options?: RTERenderContext): Nullable<string>;
  /**
   * @inheritDoc
   */
  renderStyle(options?: RTERenderContext): Nullable<AnnotationStyle>;
}
