"""
Synor Database SDK for Python

Multi-model database supporting Key-Value, Document, Vector, and Time Series data.

Example:
    >>> from synor_database import SynorDatabase
    >>>
    >>> db = SynorDatabase(api_key="your-api-key")
    >>>
    >>> # Key-Value operations
    >>> await db.kv.set("user:1", {"name": "Alice"})
    >>> user = await db.kv.get("user:1")
    >>>
    >>> # Document operations
    >>> doc = await db.documents.create("users", {"name": "Bob", "age": 30})
    >>> results = await db.documents.query("users", filter={"age": {"$gt": 25}})
    >>>
    >>> # Vector operations
    >>> await db.vectors.upsert("embeddings", [{"id": "1", "vector": [0.1, 0.2, ...]}])
    >>> similar = await db.vectors.search("embeddings", query_vector, top_k=10)
    >>>
    >>> # Time series operations
    >>> await db.timeseries.write("metrics", [{"timestamp": time.time(), "value": 42.5}])
    >>> data = await db.timeseries.query("metrics", start="-1h", end="now")
"""

from .types import (
    DatabaseConfig,
    KeyValueEntry,
    SetOptions,
    ListOptions,
    ListResult,
    Document,
    QueryOptions,
    QueryResult,
    VectorEntry,
    SearchOptions,
    SearchResult,
    VectorCollectionConfig,
    DataPoint,
    TimeRange,
    TimeSeriesQueryOptions,
    TimeSeriesResult,
    DatabaseStats,
    DatabaseError,
)
from .client import SynorDatabase

__version__ = "0.1.0"
__all__ = [
    "SynorDatabase",
    "DatabaseConfig",
    "KeyValueEntry",
    "SetOptions",
    "ListOptions",
    "ListResult",
    "Document",
    "QueryOptions",
    "QueryResult",
    "VectorEntry",
    "SearchOptions",
    "SearchResult",
    "VectorCollectionConfig",
    "DataPoint",
    "TimeRange",
    "TimeSeriesQueryOptions",
    "TimeSeriesResult",
    "DatabaseStats",
    "DatabaseError",
]
