"""
API client for submitting jobs to CZBG Lambda API.

Architecture:
- APIClient: HTTP client for Lambda endpoint
- JobPoller: Poll job status until completion
- ProgressDisplay: User feedback and progress updates
- ExecutionRouter: Route between API and local execution
- ConfigService: Load and validate API configuration

Each class follows CLAUDE.md principles:
- Single responsibility
- <10 methods per class
- <50 lines per method
- Dependency injection
"""

from .client import APIClient
from .poller import JobPoller
from .progress import ProgressDisplay
from .router import ExecutionRouter
from .config import ConfigService, APIConfig
from .s3_uploader import S3ConfigUploader

__all__ = [
    "APIClient",
    "JobPoller",
    "ProgressDisplay",
    "ExecutionRouter",
    "ConfigService",
    "APIConfig",
    "S3ConfigUploader",
]
