"""Dataclasses describing logging configuration state."""

from __future__ import annotations

from dataclasses import dataclass, field
from typing import Dict, List


@dataclass(slots=True)
class LoggerBinding:
    """Describe a single logger binding inside the application."""

    name: str
    level: str
    handlers: List[str] = field(default_factory=list)


@dataclass(slots=True)
class LoggingSummary:
    """Summary payload surfaced by the logging APIs."""

    module: str
    version: str
    default_level: str
    sinks: List[str]
    bindings: List[LoggerBinding] = field(default_factory=list)
    extra: Dict[str, object] = field(default_factory=dict)
