"""Base parser interface."""

from abc import ABC, abstractmethod
from pathlib import Path
from typing import List

from ..models import Conversation


class BaseParser(ABC):
    @abstractmethod
    def can_parse(self, path: Path) -> bool:
        """Check if this parser can handle the given path."""
        ...

    @abstractmethod
    def parse(self, path: Path) -> List[Conversation]:
        """Parse the file/directory and return conversations."""
        ...
