"""
markitect.proxy — Proxy file system for wrapping non-markdown sources.

Creates markdown proxy files that track their origin (source path,
checksum, timestamp) so they can be kept up-to-date when the original
changes.

Quick start::

    from markitect.proxy import ProxyGenerator, registry

    # Ensure built-in extractors are registered
    import markitect.proxy.extractors  # noqa: F401

    gen = ProxyGenerator(registry)
    gen.create(Path("report.pdf"), Path("./output/"))
"""

from markitect.proxy.models import ProxyMetadata, ExtractionResult
from markitect.proxy.exceptions import (
    ProxyError,
    ExtractorNotFoundError,
    DependencyMissingError,
)
from markitect.proxy.registry import ExtractorRegistry, registry
from markitect.proxy.generator import ProxyGenerator
from markitect.proxy.extractors.base import BaseExtractor

__all__ = [
    "ProxyMetadata",
    "ExtractionResult",
    "ProxyError",
    "ExtractorNotFoundError",
    "DependencyMissingError",
    "ExtractorRegistry",
    "registry",
    "ProxyGenerator",
    "BaseExtractor",
]
