"""Configuration objects for the observability suite."""
from collections.abc import Callable, Iterable
from typing import TYPE_CHECKING, Any, Protocol, cast
from sqlspec.observability._dispatcher import LifecycleHook
if TYPE_CHECKING: # pragma: no cover
from sqlspec.config import LifecycleConfig
from sqlspec.observability._formatters._base import CloudLogFormatter
from sqlspec.observability._observer import StatementEvent
from sqlspec.observability._sampling import SamplingConfig
__all__ = (
"LifecycleHook",
"LoggingConfig",
"ObservabilityConfig",
"RedactionConfig",
"StatementObserver",
"TelemetryConfig",
)
class StatementObserver(Protocol):
"""Protocol for callbacks that receive SQL execution events."""
def __call__(self, event: "StatementEvent", /) -> None:
"""Handle a SQL execution event."""
...