from typing import Any

from . import server

class Server(server.HTTPServer):
    wsgi_version: Any
    wsgi_app: Any
    request_queue_size: Any
    timeout: Any
    shutdown_timeout: Any
    requests: Any
    def __init__(
        self,
        bind_addr,
        wsgi_app,
        numthreads: int = ...,
        server_name: Any | None = ...,
        max: int = ...,
        request_queue_size: int = ...,
        timeout: int = ...,
        shutdown_timeout: int = ...,
        accepted_queue_size: int = ...,
        accepted_queue_timeout: int = ...,
        peercreds_enabled: bool = ...,
        peercreds_resolve_enabled: bool = ...,
        reuse_port: bool = ...,
    ) -> None: ...
    @property
    def numthreads(self): ...
    @numthreads.setter
    def numthreads(self, value) -> None: ...

class Gateway(server.Gateway):
    started_response: bool
    env: Any
    remaining_bytes_out: Any
    def __init__(self, req) -> None: ...
    @classmethod
    def gateway_map(cls): ...
    def get_environ(self) -> None: ...
    def respond(self) -> None: ...
    def start_response(self, status, headers, exc_info: Any | None = ...): ...
    def write(self, chunk) -> None: ...

class Gateway_10(Gateway):
    version: Any
    def get_environ(self): ...

class Gateway_u0(Gateway_10):
    version: Any
    def get_environ(self): ...

wsgi_gateways: Any

class PathInfoDispatcher:
    apps: Any
    def __init__(self, apps): ...
    def __call__(self, environ, start_response): ...

WSGIServer = Server
WSGIGateway = Gateway
WSGIGateway_u0 = Gateway_u0
WSGIGateway_10 = Gateway_10
WSGIPathInfoDispatcher = PathInfoDispatcher
