"""
Kawaa - Email Verification API Client

Official Python SDK for Kawaa Email Verification API.

Example:
    >>> from kawaa import Kawaa
    >>>
    >>> # Create client
    >>> client = Kawaa("your-api-key")
    >>>
    >>> # Verify single email
    >>> result = client.verify("john@example.com")
    >>> print(f"Status: {result.status}, Score: {result.score}")
    >>>
    >>> # Batch verification
    >>> job = client.verify_batch(["a@example.com", "b@example.com"])
    >>> result = client.wait_for_job(job.job_id)
    >>> print(f"Valid: {result.valid_count}, Invalid: {result.invalid_count}")
"""

__version__ = "0.1.0"

from .client import AsyncKawaa, Kawaa
from .exceptions import (
    AuthenticationError,
    InsufficientCreditsError,
    JobNotCompleteError,
    KawaaError,
    NotFoundError,
    RateLimitError,
    ServerError,
    TimeoutError,
    ValidationError,
)
from .models import (
    AccountInfo,
    BatchJobResult,
    DownloadResult,
    FindResult,
    JobStatus,
    JobStatusResult,
    VerificationFlags,
    VerificationResult,
    VerificationStatus,
)
from .webhooks import WebhookEvent, parse_webhook, verify_signature

__all__ = [
    # Version
    "__version__",
    # Clients
    "Kawaa",
    "AsyncKawaa",
    # Models
    "VerificationResult",
    "VerificationStatus",
    "VerificationFlags",
    "BatchJobResult",
    "JobStatus",
    "JobStatusResult",
    "DownloadResult",
    "AccountInfo",
    "FindResult",
    # Webhooks
    "WebhookEvent",
    "verify_signature",
    "parse_webhook",
    # Exceptions
    "KawaaError",
    "AuthenticationError",
    "RateLimitError",
    "InsufficientCreditsError",
    "ValidationError",
    "NotFoundError",
    "ServerError",
    "TimeoutError",
    "JobNotCompleteError",
]
