"""
Constants used throughout the OpenZIM MCP server.

NOTE: This module re-exports values from defaults.py for backward compatibility.
New code should import from defaults.py directly for access to the structured
defaults classes.
"""

# Import from centralized defaults for backward compatibility
# These are re-exported for external consumers
from .defaults import (  # noqa: F401
    CACHE,
    CACHE_PERFORMANCE,
    CONTENT,
    INPUT_LIMITS,
    NAMESPACE_SAMPLING,
    RATE_LIMIT,
    SERVER,
    TIMEOUTS,
    TOOL_MODE_ADVANCED,
    TOOL_MODE_SIMPLE,
    UNWANTED_HTML_SELECTORS,
    VALID_TOOL_MODES,
    VALID_TRANSPORT_TYPES,
    ZIM_FILE_EXTENSION,
)

# Re-export legacy constant names for backward compatibility
# Content processing constants
DEFAULT_SNIPPET_LENGTH = CONTENT.SNIPPET_LENGTH
DEFAULT_MAX_CONTENT_LENGTH = CONTENT.MAX_CONTENT_LENGTH
DEFAULT_SEARCH_LIMIT = CONTENT.SEARCH_LIMIT

# Cache configuration
DEFAULT_CACHE_SIZE = CACHE.MAX_SIZE
DEFAULT_CACHE_TTL = CACHE.TTL_SECONDS

# Binary content retrieval constants
DEFAULT_MAX_BINARY_SIZE = CONTENT.MAX_BINARY_SIZE

# Input validation limits
INPUT_LIMIT_FILE_PATH = INPUT_LIMITS.FILE_PATH
INPUT_LIMIT_QUERY = INPUT_LIMITS.QUERY
INPUT_LIMIT_ENTRY_PATH = INPUT_LIMITS.ENTRY_PATH
INPUT_LIMIT_NAMESPACE = INPUT_LIMITS.NAMESPACE
INPUT_LIMIT_CONTENT_TYPE = INPUT_LIMITS.CONTENT_TYPE
INPUT_LIMIT_PARTIAL_QUERY = INPUT_LIMITS.PARTIAL_QUERY

# Regex timeout for intent parsing (seconds)
REGEX_TIMEOUT_SECONDS = TIMEOUTS.REGEX_SECONDS

# Rate limiting defaults
DEFAULT_RATE_LIMIT_ENABLED = RATE_LIMIT.ENABLED
DEFAULT_RATE_LIMIT_RPS = RATE_LIMIT.REQUESTS_PER_SECOND
DEFAULT_RATE_LIMIT_BURST = RATE_LIMIT.BURST_SIZE

# Cache persistence defaults
DEFAULT_CACHE_PERSISTENCE_ENABLED = CACHE.PERSISTENCE_ENABLED
DEFAULT_CACHE_PERSISTENCE_PATH = CACHE.PERSISTENCE_PATH

# Main page display
DEFAULT_MAIN_PAGE_TRUNCATION = CONTENT.MAIN_PAGE_TRUNCATION

# Cache performance thresholds
CACHE_LOW_HIT_RATE_THRESHOLD = CACHE_PERFORMANCE.LOW_HIT_RATE
CACHE_HIGH_HIT_RATE_THRESHOLD = CACHE_PERFORMANCE.HIGH_HIT_RATE

# Namespace sampling
NAMESPACE_MAX_SAMPLE_SIZE = NAMESPACE_SAMPLING.MAX_SAMPLE_SIZE
NAMESPACE_MAX_ENTRIES = NAMESPACE_SAMPLING.MAX_NAMESPACE_ENTRIES
NAMESPACE_SAMPLE_ATTEMPTS_MULTIPLIER = NAMESPACE_SAMPLING.MAX_SAMPLE_ATTEMPTS_MULTIPLIER
