"""Fishinfo Python SDK - Telemetry client and import tools.

This SDK provides query, NMEA parsing, and bulk import capabilities
for fishinfo data. Data ingestion (real-time) is handled by the
ingress-edge SDK.
"""

from .config import FishinfoConfig
from .exceptions import (
    AuthenticationError,
    AuthorizationError,
    ConfigError,
    ConnectionError,
    FishinfoError,
    RateLimitError,
    ResourceNotFoundError,
    ServerError,
    TimeoutError,
    ValidationError,
)
from .models import (
    AggregatedDataPoint,
    AggregatedTelemetry,
    AggregationType,
    BulkImportResponse,
    BulkTelemetryRecord,
    CreateImportJobResponse,
    DataType,
    ImportFormat,
    ImportJob,
    ImportJobListResponse,
    ImportJobPart,
    ImportJobStatus,
    ImportSchemaResponse,
    LatestTelemetryResponse,
    OrderDirection,
    PaginationMeta,
    TelemetryPoint,
    TelemetryResponse,
)
from .nmea import (
    AISDecoder,
    AISMessage,
    AISMessageType,
    AISPositionReport,
    AISStaticData,
    DBTSentence,
    DPTSentence,
    FixQuality,
    GGASentence,
    HDGSentence,
    HDTSentence,
    MTWSentence,
    MWVSentence,
    NavigationStatus,
    NMEAConverter,
    NMEAParser,
    NMEASentence,
    RMCSentence,
    VTGSentence,
    add_checksum,
    calculate_checksum,
    extract_checksum,
    validate_checksum,
)

__version__ = "0.1.0"

__all__ = [
    # Config
    "FishinfoConfig",
    # Telemetry models
    "TelemetryPoint",
    "DataType",
    # Query response models
    "TelemetryResponse",
    "LatestTelemetryResponse",
    "PaginationMeta",
    "OrderDirection",
    "AggregationType",
    "AggregatedDataPoint",
    "AggregatedTelemetry",
    # Import models
    "ImportJobStatus",
    "ImportFormat",
    "BulkTelemetryRecord",
    "ImportJob",
    "ImportJobPart",
    "CreateImportJobResponse",
    "ImportJobListResponse",
    "BulkImportResponse",
    "ImportSchemaResponse",
    # NMEA Parser
    "NMEAParser",
    "NMEASentence",
    "GGASentence",
    "RMCSentence",
    "VTGSentence",
    "HDTSentence",
    "HDGSentence",
    "DBTSentence",
    "DPTSentence",
    "MWVSentence",
    "MTWSentence",
    "FixQuality",
    # AIS Decoder
    "AISDecoder",
    "AISMessage",
    "AISMessageType",
    "AISPositionReport",
    "AISStaticData",
    "NavigationStatus",
    # NMEA Converter
    "NMEAConverter",
    # Checksum utilities
    "calculate_checksum",
    "validate_checksum",
    "extract_checksum",
    "add_checksum",
    # Exceptions
    "FishinfoError",
    "ConfigError",
    "ConnectionError",
    "AuthenticationError",
    "AuthorizationError",
    "ValidationError",
    "TimeoutError",
    "RateLimitError",
    "ResourceNotFoundError",
    "ServerError",
]
