"""Pure Python validation for KiCad designs.

This module provides validators that check PCB and schematic designs
without requiring kicad-cli to be installed.

DRC Validation:
    >>> from kicad_tools.schema.pcb import PCB
    >>> from kicad_tools.validate import DRCChecker, DRCViolation, DRCResults
    >>>
    >>> pcb = PCB.load("board.kicad_pcb")
    >>> checker = DRCChecker(pcb, manufacturer="jlcpcb", layers=4)
    >>> results = checker.check_all()
    >>>
    >>> print(results.summary())
    >>> for violation in results:
    ...     print(f"  {violation.rule_id}: {violation.message}")

Netlist Sync Validation:
    >>> from kicad_tools.validate import NetlistValidator, SyncResult, SyncIssue
    >>>
    >>> validator = NetlistValidator("project.kicad_sch", "project.kicad_pcb")
    >>> result = validator.validate()
    >>>
    >>> if not result.in_sync:
    ...     for issue in result.issues:
    ...         print(f"{issue.severity}: {issue.message}")
    ...         print(f"  Fix: {issue.suggestion}")

Difference from ``kicad_tools.drc``:
    - ``kicad_tools.drc``: Parses DRC reports generated by kicad-cli
    - ``kicad_tools.validate``: Performs DRC checks in pure Python (no kicad-cli)
"""

from .checker import DRCChecker
from .netlist import NetlistValidator, SyncIssue, SyncResult
from .violations import DRCResults, DRCViolation

__all__ = [
    # DRC validation
    "DRCChecker",
    "DRCViolation",
    "DRCResults",
    # Netlist sync validation
    "NetlistValidator",
    "SyncIssue",
    "SyncResult",
]
