import typing

import java
import java.lang
import java.net

class ServerSocketFactory(java.lang.Object):
    def __init__(self) -> None: ...
    @typing.overload
    def createServerSocket(self) -> java.net.ServerSocket: ...
    @typing.overload
    def createServerSocket(self, arg1: int | java.jint | java.lang.Integer, /) -> java.net.ServerSocket: ...
    @typing.overload
    def createServerSocket(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, /) -> java.net.ServerSocket: ...
    @typing.overload
    def createServerSocket(self, arg1: int | java.jint | java.lang.Integer, arg2: int | java.jint | java.lang.Integer, arg3: java.net.InetAddress, /) -> java.net.ServerSocket: ...
    @staticmethod
    def getDefault() -> ServerSocketFactory: ...

class SocketFactory(java.lang.Object):
    def __init__(self) -> None: ...
    @typing.overload
    def createSocket(self) -> java.net.Socket: ...
    @typing.overload
    def createSocket(self, arg1: str | java.lang.String, arg2: int | java.jint | java.lang.Integer, /) -> java.net.Socket: ...
    @typing.overload
    def createSocket(self, arg1: java.net.InetAddress, arg2: int | java.jint | java.lang.Integer, /) -> java.net.Socket: ...
    @typing.overload
    def createSocket(self, arg1: str | java.lang.String, arg2: int | java.jint | java.lang.Integer, arg3: java.net.InetAddress, arg4: int | java.jint | java.lang.Integer, /) -> java.net.Socket: ...
    @typing.overload
    def createSocket(self, arg1: java.net.InetAddress, arg2: int | java.jint | java.lang.Integer, arg3: java.net.InetAddress, arg4: int | java.jint | java.lang.Integer, /) -> java.net.Socket: ...
    @staticmethod
    def getDefault() -> SocketFactory: ...
