import typing

import java
import java.lang

class CoreConnectionPNames(java.lang.Object):
    CONNECTION_TIMEOUT: typing.ClassVar[str] = ...
    MAX_HEADER_COUNT: typing.ClassVar[str] = ...
    MAX_LINE_LENGTH: typing.ClassVar[str] = ...
    SOCKET_BUFFER_SIZE: typing.ClassVar[str] = ...
    SO_LINGER: typing.ClassVar[str] = ...
    SO_TIMEOUT: typing.ClassVar[str] = ...
    STALE_CONNECTION_CHECK: typing.ClassVar[str] = ...
    TCP_NODELAY: typing.ClassVar[str] = ...

class HttpConnectionParams(CoreConnectionPNames):
    @staticmethod
    def getConnectionTimeout(params: HttpParams, /) -> int: ...
    @staticmethod
    def getLinger(params: HttpParams, /) -> int: ...
    @staticmethod
    def getSoTimeout(params: HttpParams, /) -> int: ...
    @staticmethod
    def getSocketBufferSize(params: HttpParams, /) -> int: ...
    @staticmethod
    def getTcpNoDelay(params: HttpParams, /) -> bool: ...
    @staticmethod
    def isStaleCheckingEnabled(params: HttpParams, /) -> bool: ...
    @staticmethod
    def setConnectionTimeout(params: HttpParams, timeout: int | java.jint | java.lang.Integer, /) -> None: ...
    @staticmethod
    def setLinger(params: HttpParams, value: int | java.jint | java.lang.Integer, /) -> None: ...
    @staticmethod
    def setSoTimeout(params: HttpParams, timeout: int | java.jint | java.lang.Integer, /) -> None: ...
    @staticmethod
    def setSocketBufferSize(params: HttpParams, size: int | java.jint | java.lang.Integer, /) -> None: ...
    @staticmethod
    def setStaleCheckingEnabled(params: HttpParams, value: bool | java.jboolean | java.lang.Boolean, /) -> None: ...
    @staticmethod
    def setTcpNoDelay(params: HttpParams, value: bool | java.jboolean | java.lang.Boolean, /) -> None: ...

class HttpParams(java.lang.Object):
    def copy(self) -> HttpParams: ...
    def getBooleanParameter(self, arg1: str | java.lang.String, arg2: bool | java.jboolean | java.lang.Boolean, /) -> bool: ...
    def getDoubleParameter(self, arg1: str | java.lang.String, arg2: float | java.jdouble | java.lang.Double, /) -> float: ...
    def getIntParameter(self, arg1: str | java.lang.String, arg2: int | java.jint | java.lang.Integer, /) -> int: ...
    def getLongParameter(self, arg1: str | java.lang.String, arg2: int | java.jlong | java.lang.Long, /) -> int: ...
    def getParameter(self, arg1: str | java.lang.String, /) -> java.lang.Object: ...
    def isParameterFalse(self, arg1: str | java.lang.String, /) -> bool: ...
    def isParameterTrue(self, arg1: str | java.lang.String, /) -> bool: ...
    def removeParameter(self, arg1: str | java.lang.String, /) -> bool: ...
    def setBooleanParameter(self, arg1: str | java.lang.String, arg2: bool | java.jboolean | java.lang.Boolean, /) -> HttpParams: ...
    def setDoubleParameter(self, arg1: str | java.lang.String, arg2: float | java.jdouble | java.lang.Double, /) -> HttpParams: ...
    def setIntParameter(self, arg1: str | java.lang.String, arg2: int | java.jint | java.lang.Integer, /) -> HttpParams: ...
    def setLongParameter(self, arg1: str | java.lang.String, arg2: int | java.jlong | java.lang.Long, /) -> HttpParams: ...
    def setParameter(self, arg1: str | java.lang.String, arg2: java.lang.Object | int | bool | float | str, /) -> HttpParams: ...
