import java.lang.annotation
import typing



class Body(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class DELETE(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def value(self) -> str: ...

class Field(java.lang.annotation.Annotation):
    def encoded(self) -> bool: ...
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def value(self) -> str: ...

class FieldMap(java.lang.annotation.Annotation):
    def encoded(self) -> bool: ...
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class FormUrlEncoded(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class GET(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def value(self) -> str: ...

class HEAD(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def value(self) -> str: ...

class HTTP(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hasBody(self) -> bool: ...
    def hashCode(self) -> int: ...
    def method(self) -> str: ...
    def path(self) -> str: ...
    def toString(self) -> str: ...

class Header(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def value(self) -> str: ...

class HeaderMap(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class Headers(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def value(self) -> typing.List[str]: ...

class Multipart(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class OPTIONS(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def value(self) -> str: ...

class PATCH(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def value(self) -> str: ...

class POST(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def value(self) -> str: ...

class PUT(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def value(self) -> str: ...

class Part(java.lang.annotation.Annotation):
    def encoding(self) -> str: ...
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def value(self) -> str: ...

class PartMap(java.lang.annotation.Annotation):
    def encoding(self) -> str: ...
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class Path(java.lang.annotation.Annotation):
    def encoded(self) -> bool: ...
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def value(self) -> str: ...

class Query(java.lang.annotation.Annotation):
    def encoded(self) -> bool: ...
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...
    def value(self) -> str: ...

class QueryMap(java.lang.annotation.Annotation):
    def encoded(self) -> bool: ...
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class QueryName(java.lang.annotation.Annotation):
    def encoded(self) -> bool: ...
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class Streaming(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class Tag(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...

class Url(java.lang.annotation.Annotation):
    def equals(self, object: typing.Any) -> bool: ...
    def hashCode(self) -> int: ...
    def toString(self) -> str: ...


class __module_protocol__(typing.Protocol):
    # A module protocol which reflects the result of ``jp.JPackage("retrofit2.http")``.

    Body: typing.Type[Body]
    DELETE: typing.Type[DELETE]
    Field: typing.Type[Field]
    FieldMap: typing.Type[FieldMap]
    FormUrlEncoded: typing.Type[FormUrlEncoded]
    GET: typing.Type[GET]
    HEAD: typing.Type[HEAD]
    HTTP: typing.Type[HTTP]
    Header: typing.Type[Header]
    HeaderMap: typing.Type[HeaderMap]
    Headers: typing.Type[Headers]
    Multipart: typing.Type[Multipart]
    OPTIONS: typing.Type[OPTIONS]
    PATCH: typing.Type[PATCH]
    POST: typing.Type[POST]
    PUT: typing.Type[PUT]
    Part: typing.Type[Part]
    PartMap: typing.Type[PartMap]
    Path: typing.Type[Path]
    Query: typing.Type[Query]
    QueryMap: typing.Type[QueryMap]
    QueryName: typing.Type[QueryName]
    Streaming: typing.Type[Streaming]
    Tag: typing.Type[Tag]
    Url: typing.Type[Url]
