"""Provider adapter package.

Public surface:
    from recoil.execution.providers import (
        UnifiedVideoPayload, ProviderAdapter, ProviderCapabilityError,
        resolve_adapter, resolve_fallback, list_adapters, load_strategy,
    )

Adapter modules (fal, atlas, piapi) expose an ADAPTER instance each.
They are loaded lazily via registry import — do NOT import them at
package init time, because that would force fal_client etc. to be
installed before anyone can even introspect the package.
"""

from recoil.execution.providers.base import (
    CAPABILITY_KEYS,
    PollRequest,
    PollResult,
    ProviderAdapter,
    ProviderCapabilityError,
    ProviderJob,
    SubmitRequest,
    UnifiedVideoPayload,
)
from recoil.execution.providers.registry import (
    list_adapters,
    load_strategy,
    reset_caches_for_tests,
    resolve_adapter,
    resolve_fallback,
)

__all__ = [
    "CAPABILITY_KEYS",
    "PollRequest",
    "PollResult",
    "ProviderAdapter",
    "ProviderCapabilityError",
    "ProviderJob",
    "SubmitRequest",
    "UnifiedVideoPayload",
    "list_adapters",
    "load_strategy",
    "reset_caches_for_tests",
    "resolve_adapter",
    "resolve_fallback",
]
