"""cache_core — Multi-backend cache abstraction layer."""

from .clients.base import CacheClient
from .clients.redis import RedisCacheClient
from .clients.memory import MemoryCacheClient
from .clients.factory import (
    create_redis_cache_client,
    get_redis_cache_client,
    create_memory_cache_client,
    get_memory_cache_client,
)
from .serializer import (
    Serializer,
    SmartSerializer,
    PickleSerializer,
    PassthroughSerializer,
)
from .builder import (
    CacheBuilder,
    KeyOperation,
    HashOperation,
    HashFieldOperation,
    ListOperation,
    SetOperation,
    SortedSetOperation,
    PatternOperation,
)

__all__ = [
    # Clients
    "CacheClient",
    "RedisCacheClient",
    "MemoryCacheClient",
    # Factory
    "create_redis_cache_client",
    "get_redis_cache_client",
    "create_memory_cache_client",
    "get_memory_cache_client",
    # Serializers
    "Serializer",
    "SmartSerializer",
    "PickleSerializer",
    "PassthroughSerializer",
    # Builder
    "CacheBuilder",
    "KeyOperation",
    "HashOperation",
    "HashFieldOperation",
    "ListOperation",
    "SetOperation",
    "SortedSetOperation",
    "PatternOperation",
]
