"""
Base class for HTML content extractors.
"""

from abc import ABC, abstractmethod
from typing import Optional


class BaseExtractor(ABC):
    """Abstract base for content extraction strategies."""

    @abstractmethod
    def extract(self, html: str) -> Optional[str]:
        """Extract main content text from HTML.

        Args:
            html: Raw or partially cleaned HTML string.

        Returns:
            Extracted plain text, or None if extraction yielded nothing.
        """
