from _typeshed import Incomplete

from .base import PipelineBase as PipelineBase
from .base import StatsClientBase as StatsClientBase

class StreamPipeline(PipelineBase): ...

class StreamClientBase(StatsClientBase):
    def connect(self) -> None: ...
    def close(self) -> None: ...
    def reconnect(self) -> None: ...
    def pipeline(self) -> StreamPipeline: ...

class TCPStatsClient(StreamClientBase):
    def __init__(
        self,
        host: str = "localhost",
        port: int = 8125,
        prefix: str | None = None,
        timeout: float | None = None,
        ipv6: bool = False,
    ) -> None: ...
    def connect(self) -> None: ...

class UnixSocketStatsClient(StreamClientBase):
    def __init__(self, socket_path, prefix: str | None = None, timeout: Incomplete | None = None) -> None: ...
    def connect(self) -> None: ...
