import threading
from concurrent.futures import Future as ConcurrentFuture
from dataclasses import dataclass, field


@dataclass
class PendingRequest:
    event_id: str = ""
    submitted_event: threading.Event = field(default_factory=threading.Event)
    result_future: ConcurrentFuture = field(default_factory=ConcurrentFuture)
    submitted_payload: dict | None = None
