from collections.abc import Callable
from typing import Any

class KafkaError(Exception): ...

class Message:
    def key(self) -> str | None: ...

class Producer:
    def __init__(self, conf: dict[str, Any]) -> None: ...
    def produce(
        self,
        topic: str,
        value: str | None = ...,
        key: str | None = ...,
        callback: Callable[[KafkaError, Message], None] | None = ...,
    ) -> None: ...
    def flush(self, timeout: float | None = ...) -> int: ...
