"""
Synor Storage SDK

Decentralized storage, pinning, and content retrieval on the Synor network.

Example:
    >>> from synor_storage import SynorStorage
    >>> async with SynorStorage(api_key="sk_...") as storage:
    ...     result = await storage.upload(b"Hello, World!")
    ...     print(f"CID: {result.cid}")
    ...
    ...     # Get gateway URL
    ...     gateway = storage.get_gateway_url(result.cid)
    ...     print(f"URL: {gateway.url}")
"""

from .client import SynorStorage, StorageError
from .types import (
    StorageConfig,
    PinStatus,
    HashAlgorithm,
    EntryType,
    MatchType,
    UploadOptions,
    UploadProgress,
    UploadResponse,
    DownloadOptions,
    DownloadProgress,
    Pin,
    PinRequest,
    ListPinsOptions,
    ListPinsResponse,
    GatewayUrl,
    CarBlock,
    CarFile,
    FileEntry,
    DirectoryEntry,
    ImportCarResponse,
    StorageStats,
)

__all__ = [
    # Client
    "SynorStorage",
    "StorageError",
    # Config
    "StorageConfig",
    # Enums
    "PinStatus",
    "HashAlgorithm",
    "EntryType",
    "MatchType",
    # Types
    "UploadOptions",
    "UploadProgress",
    "UploadResponse",
    "DownloadOptions",
    "DownloadProgress",
    "Pin",
    "PinRequest",
    "ListPinsOptions",
    "ListPinsResponse",
    "GatewayUrl",
    "CarBlock",
    "CarFile",
    "FileEntry",
    "DirectoryEntry",
    "ImportCarResponse",
    "StorageStats",
]

__version__ = "0.1.0"
