import { Nullable } from '../../../../../types/general';
import { BlockAnnotation } from '../../../dto/annotations/block-annotation.abstract';
import { AnnotationStyle } from '../../../interface';
import { RTETableColorAnnotation } from './table-color-annotation';
export declare type VegaRTETableAnnotation = {
  backgroundColor?: Nullable<string>;
  border?: Nullable<VegaRTETableBorderType>;
  width?: Nullable<string>;
  height?: Nullable<string>;
  alignment?: Nullable<VegaRTETableAlignment>;
  borderCollapse?: Nullable<string>;
};
export declare type VegaRTETableBorderType = {
  style?: string;
  width?: string;
  color?: string;
};
export declare enum RTETableExtensionAnnotationTypeEnum {
  TABLE = "EXTENSION_TABLE",
  CELL = "EXTENSION_TABLE_CELL",
  CAPTION = "EXTENSION_TABLE_CAPTION",
  COLOR = "EXTENSION_TABLE_COLOR"
}
export declare type VegaRTETableAlignment = 'left' | 'center' | 'right';
/**
 * Class representing a table annotation in the rich text editor.
 */
export declare class RTETableAnnotation extends BlockAnnotation<RTETableExtensionAnnotationTypeEnum.TABLE> {
  static readonly DEFAULT_BORDER_COLLAPSE: string;
  static readonly DEFAULT_ALIGNMENT: VegaRTETableAlignment;
  static readonly DEFAULT_ALIGNMENT_STYLE_VALUE: string;
  readonly type: RTETableExtensionAnnotationTypeEnum.TABLE;
  backgroundColor?: Nullable<string>;
  border?: Nullable<VegaRTETableBorderType>;
  backgroundColorAnnotation: RTETableColorAnnotation;
  borderColorAnnotation: RTETableColorAnnotation;
  width?: Nullable<string>;
  height?: Nullable<string>;
  alignment?: Nullable<VegaRTETableAlignment>;
  borderCollapse?: Nullable<string>;
  useInternalStyle: boolean;
  constructor({ backgroundColor, border, width, height, alignment, borderCollapse }?: VegaRTETableAnnotation, useInternalStyle?: boolean);
  /**
   * @inheritDoc
   */
  static from(value: VegaRTETableAnnotation, useInternalStyle?: boolean): [RTETableExtensionAnnotationTypeEnum.TABLE, RTETableAnnotation];
  /**
   * Get the default styles for the table annotation.
   *
   * @returns {AnnotationStyle} The default styles for the table annotation.
   */
  static getDefaultStyles(): AnnotationStyle;
  /**
   * Generates the CSS border string from the border properties.
   *
   * @returns {Nullable<string>} The CSS border string.
   */
  get borderStr(): Nullable<string>;
  /**
   * @inheritDoc
   */
  clone(): RTETableAnnotation;
  /**
   * @inheritDoc
   */
  toJSON(): Record<'table', VegaRTETableAnnotation>;
  /**
   * @inheritDoc
   */
  renderStyle(): Record<string, string>;
  /**
   * @inheritDoc
   */
  renderClass(): Nullable<string>;
  /**
   * Generates the alignment styles for the table.
   *
   * @returns {Record<string, string>} The alignment styles.
   */
  renderAlignmentStyle(): Record<string, string>;
}
