import { Annotation, InternalAnnotationTypeEnum } from './annotation.abstract';
import { RTETextNode } from '../nodes/text-node';
import { AnnotationStyle, RTERenderContext } from '../../interface';
import { LinkAnnotation } from './link-annotation';
import { LinkFilterStylesStrategy } from '../filter-styles-strategies/text-node/link-filter-styles-strategy';
declare type LinkGroupConversionOptions = RTERenderContext & {
  filterInlineStyles?: boolean;
};
/**
 * Annotation to represent a link of grouped nodes
 */
export declare class LinkGroupAnnotation extends Annotation {
  static linkGroupFilterStylesStrategy: LinkFilterStylesStrategy;
  readonly type: InternalAnnotationTypeEnum;
  linkGroups: Map<string, RTETextNode[]>;
  constructor(groupKey: string);
  /**
   * Get the default standalone styles applied to a link by Vega's internal style.
   * These are redundant when parsed back from standalone HTML and should be stripped.
   *
   * @returns {AnnotationStyle} The default styles.
   */
  static getDefaultStyles(): AnnotationStyle;
  clone(): LinkGroupAnnotation;
  /**
   * Convert the custom style, class and attribute to string which html can used
   *
   * @param {linkAnnotation} linkAnnotation current link annotation which saved custom style, class and attribute.
   * @param {LinkGroupConversionOptions} options - options.
   * @returns {string} - string.
   */
  toString(linkAnnotation: LinkAnnotation, options?: LinkGroupConversionOptions): string;
  /**
   * Convert the custom style, class and attribute to JSX attributes
   *
   * @param {linkAnnotation} linkAnnotation current link annotation which saved custom style, class and attribute.
   * @param {RTERenderContext} options - options.
   * @returns {Record<string, string | AnnotationStyle>} JSX used attributes.
   */
  toJsx(linkAnnotation: LinkAnnotation, options?: RTERenderContext): Record<string, string | AnnotationStyle>;
  /**
   * Get the custom class for the annotation
   *
   * @param {linkAnnotation} linkAnnotation current link annotation which saved custom style, class and attribute.
   * @param {RTERenderContext} options - options.
   * @returns {string[]} Link class
   */
  private getClass;
  /**
   * Get the custom style for the annotation
   *
   * @param {LinkAnnotation} linkAnnotation current link annotation which saved custom style, class and attribute.
   * @param {RTERenderContext} options - options.
   * @returns {AnnotationStyle} Link style
   */
  private getStyle;
  /**
   * Get the custom attribute for the annotation
   *
   * @param {LinkAnnotation} linkAnnotation current link annotation which saved custom style, class and attribute.
   * @returns {Record<string, string>} Link attributes
   */
  private getAttribute;
  /**
   * Convert style to string which can be used to html string.
   *
   * @param {AnnotationStyle} style Style object.
   * @returns {string} Style string
   */
  private formatStyleToString;
}
export {};
