"""Main retry interface for the Trax platform.

This module provides a simple interface for working with the retry system
with exponential backoff and jitter.
"""

from .base import (
    RetryConfig, RetryState, CircuitBreaker, RetryStrategy,
    DEFAULT_RETRY_CONFIG, NETWORK_RETRY_CONFIG, API_RETRY_CONFIG, PROCESSING_RETRY_CONFIG
)

from .decorators import (
    retry, async_retry,
    retry_network, async_retry_network,
    retry_api, async_retry_api,
    retry_processing, async_retry_processing,
    RetryContext, AsyncRetryContext
)

# Export main classes and functions
__all__ = [
    # Configuration
    'RetryConfig', 'RetryState', 'CircuitBreaker', 'RetryStrategy',
    
    # Default configurations
    'DEFAULT_RETRY_CONFIG', 'NETWORK_RETRY_CONFIG', 'API_RETRY_CONFIG', 'PROCESSING_RETRY_CONFIG',
    
    # Main decorators
    'retry', 'async_retry',
    
    # Convenience decorators
    'retry_network', 'async_retry_network',
    'retry_api', 'async_retry_api',
    'retry_processing', 'async_retry_processing',
    
    # Context managers
    'RetryContext', 'AsyncRetryContext',
]
