import { Nullable } from '../../../types/general';
import { AllowedAttributesMap, AllowedTagsType } from './types';
/**
 * Base class for all sanitization strategies.
 *
 * Strategy defines:
 * - Allowed tags
 * - Allowed attributes per tag
 * - Text preservation behavior
 */
export declare abstract class SanitizeStrategy {
  protected readonly allowedAttributes?: AllowedAttributesMap;
  protected readonly preserveTextContent: boolean;
  protected abstract readonly allowedTags: AllowedTagsType;
  /**
   * @param {Node} node - Node to sanitize.
   * @param {Document} doc - document reference.
   * @returns {Nullable<Node>} - Sanitized node
   */
  execute(node: Node, doc: Document): Nullable<Node>;
  /**
   * @param {HTMLElement} element - HTMLElement to sanitize.
   * @param {Document} doc - document reference.
   * @returns {Nullable<Node>} - Sanitized node
   */
  protected sanitizeElement(element: HTMLElement, doc: Document): Nullable<Node>;
}
