from __future__ import annotations

from typing import Protocol

from .events import RunEvent, StreamEvent


class CallbackProtocol(Protocol):
    """Protocol defining the callback interface"""

    def on_run_start(self, event: RunEvent) -> None: ...
    def on_run_end(self, event: RunEvent) -> None: ...
    def on_run_error(self, event: RunEvent) -> None: ...
    def on_stream_start(self, event: StreamEvent) -> None: ...
    def on_stream_end(self, event: StreamEvent) -> None: ...
    def on_stream_error(self, event: StreamEvent) -> None: ...
