import typing, clr, abc
from System import Array_1, MulticastDelegate, IAsyncResult, AsyncCallback, Uri, Version, TimeSpan, Func_5, IDisposable, IEquatable_1, Exception, ReadOnlyMemory_1, Func_3
from System.Net.Http.Headers import HttpContentHeaders, HttpRequestHeaders, HttpResponseHeaders
from System.Collections.Generic import IEnumerable_1, KeyValuePair_2, IDictionary_2, IEnumerator_1
from System.Reflection import MethodInfo, MethodBase
from System.Text import Encoding
from System.Net import IWebProxy, DecompressionMethods, CookieContainer, ICredentials, TransportContext, HttpStatusCode, DnsEndPoint
from System.Threading.Tasks import Task_1, Task, ValueTask_1
from System.Threading import CancellationToken
from System.IO import Stream
from System.Security.Cryptography.X509Certificates import X509CertificateCollection, X509Certificate2, X509Chain
from System.Net.Security import SslPolicyErrors, SslClientAuthenticationOptions
from System.Security.Authentication import SslProtocols
from System.Collections import IDictionary
from System.Diagnostics import DistributedContextPropagator

class ByteArrayContent(HttpContent):
    @typing.overload
    def __init__(self, content: Array_1[int]) -> None: ...
    @typing.overload
    def __init__(self, content: Array_1[int], offset: int, count: int) -> None: ...
    @property
    def Headers(self) -> HttpContentHeaders: ...


class ClientCertificateOption(typing.SupportsInt):
    @typing.overload
    def __init__(self, value : int) -> None: ...
    @typing.overload
    def __init__(self, value : int, force_if_true: bool) -> None: ...
    def __int__(self) -> int: ...
    
    # Values:
    Manual : ClientCertificateOption # 0
    Automatic : ClientCertificateOption # 1


class DelegatingHandler(HttpMessageHandler):
    @property
    def InnerHandler(self) -> HttpMessageHandler: ...
    @InnerHandler.setter
    def InnerHandler(self, value: HttpMessageHandler) -> HttpMessageHandler: ...


class FormUrlEncodedContent(ByteArrayContent):
    def __init__(self, nameValueCollection: IEnumerable_1[KeyValuePair_2[str, str]]) -> None: ...
    @property
    def Headers(self) -> HttpContentHeaders: ...


class HeaderEncodingSelector_GenericClasses(abc.ABCMeta):
    Generic_HeaderEncodingSelector_GenericClasses_HeaderEncodingSelector_1_TContext = typing.TypeVar('Generic_HeaderEncodingSelector_GenericClasses_HeaderEncodingSelector_1_TContext')
    def __getitem__(self, types : typing.Type[Generic_HeaderEncodingSelector_GenericClasses_HeaderEncodingSelector_1_TContext]) -> typing.Type[HeaderEncodingSelector_1[Generic_HeaderEncodingSelector_GenericClasses_HeaderEncodingSelector_1_TContext]]: ...

HeaderEncodingSelector : HeaderEncodingSelector_GenericClasses

HeaderEncodingSelector_1_TContext = typing.TypeVar('HeaderEncodingSelector_1_TContext')
class HeaderEncodingSelector_1(typing.Generic[HeaderEncodingSelector_1_TContext], MulticastDelegate):
    def __init__(self, object: typing.Any, method: int) -> None: ...
    @property
    def Method(self) -> MethodInfo: ...
    @property
    def Target(self) -> typing.Any: ...
    def BeginInvoke(self, headerName: str, context: HeaderEncodingSelector_1_TContext, callback: AsyncCallback, object: typing.Any) -> IAsyncResult: ...
    def EndInvoke(self, result: IAsyncResult) -> Encoding: ...
    def Invoke(self, headerName: str, context: HeaderEncodingSelector_1_TContext) -> Encoding: ...


class HttpClient(HttpMessageInvoker):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, handler: HttpMessageHandler) -> None: ...
    @typing.overload
    def __init__(self, handler: HttpMessageHandler, disposeHandler: bool) -> None: ...
    @property
    def BaseAddress(self) -> Uri: ...
    @BaseAddress.setter
    def BaseAddress(self, value: Uri) -> Uri: ...
    @classmethod
    @property
    def DefaultProxy(cls) -> IWebProxy: ...
    @classmethod
    @DefaultProxy.setter
    def DefaultProxy(cls, value: IWebProxy) -> IWebProxy: ...
    @property
    def DefaultRequestHeaders(self) -> HttpRequestHeaders: ...
    @property
    def DefaultRequestVersion(self) -> Version: ...
    @DefaultRequestVersion.setter
    def DefaultRequestVersion(self, value: Version) -> Version: ...
    @property
    def DefaultVersionPolicy(self) -> HttpVersionPolicy: ...
    @DefaultVersionPolicy.setter
    def DefaultVersionPolicy(self, value: HttpVersionPolicy) -> HttpVersionPolicy: ...
    @property
    def MaxResponseContentBufferSize(self) -> int: ...
    @MaxResponseContentBufferSize.setter
    def MaxResponseContentBufferSize(self, value: int) -> int: ...
    @property
    def Timeout(self) -> TimeSpan: ...
    @Timeout.setter
    def Timeout(self, value: TimeSpan) -> TimeSpan: ...
    def CancelPendingRequests(self) -> None: ...
    # Skipped DeleteAsync due to it being static, abstract and generic.

    DeleteAsync : DeleteAsync_MethodGroup
    class DeleteAsync_MethodGroup:
        @typing.overload
        def __call__(self, requestUri: str) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: Uri) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: str, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: Uri, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]:...

    # Skipped GetAsync due to it being static, abstract and generic.

    GetAsync : GetAsync_MethodGroup
    class GetAsync_MethodGroup:
        @typing.overload
        def __call__(self, requestUri: str) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: Uri) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: str, completionOption: HttpCompletionOption) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: str, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: Uri, completionOption: HttpCompletionOption) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: Uri, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: str, completionOption: HttpCompletionOption, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: Uri, completionOption: HttpCompletionOption, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]:...

    # Skipped GetByteArrayAsync due to it being static, abstract and generic.

    GetByteArrayAsync : GetByteArrayAsync_MethodGroup
    class GetByteArrayAsync_MethodGroup:
        @typing.overload
        def __call__(self, requestUri: str) -> Task_1[Array_1[int]]:...
        @typing.overload
        def __call__(self, requestUri: Uri) -> Task_1[Array_1[int]]:...
        @typing.overload
        def __call__(self, requestUri: str, cancellationToken: CancellationToken) -> Task_1[Array_1[int]]:...
        @typing.overload
        def __call__(self, requestUri: Uri, cancellationToken: CancellationToken) -> Task_1[Array_1[int]]:...

    # Skipped GetStreamAsync due to it being static, abstract and generic.

    GetStreamAsync : GetStreamAsync_MethodGroup
    class GetStreamAsync_MethodGroup:
        @typing.overload
        def __call__(self, requestUri: str) -> Task_1[Stream]:...
        @typing.overload
        def __call__(self, requestUri: Uri) -> Task_1[Stream]:...
        @typing.overload
        def __call__(self, requestUri: str, cancellationToken: CancellationToken) -> Task_1[Stream]:...
        @typing.overload
        def __call__(self, requestUri: Uri, cancellationToken: CancellationToken) -> Task_1[Stream]:...

    # Skipped GetStringAsync due to it being static, abstract and generic.

    GetStringAsync : GetStringAsync_MethodGroup
    class GetStringAsync_MethodGroup:
        @typing.overload
        def __call__(self, requestUri: str) -> Task_1[str]:...
        @typing.overload
        def __call__(self, requestUri: Uri) -> Task_1[str]:...
        @typing.overload
        def __call__(self, requestUri: str, cancellationToken: CancellationToken) -> Task_1[str]:...
        @typing.overload
        def __call__(self, requestUri: Uri, cancellationToken: CancellationToken) -> Task_1[str]:...

    # Skipped PatchAsync due to it being static, abstract and generic.

    PatchAsync : PatchAsync_MethodGroup
    class PatchAsync_MethodGroup:
        @typing.overload
        def __call__(self, requestUri: str, content: HttpContent) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: Uri, content: HttpContent) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: str, content: HttpContent, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: Uri, content: HttpContent, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]:...

    # Skipped PostAsync due to it being static, abstract and generic.

    PostAsync : PostAsync_MethodGroup
    class PostAsync_MethodGroup:
        @typing.overload
        def __call__(self, requestUri: str, content: HttpContent) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: Uri, content: HttpContent) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: str, content: HttpContent, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: Uri, content: HttpContent, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]:...

    # Skipped PutAsync due to it being static, abstract and generic.

    PutAsync : PutAsync_MethodGroup
    class PutAsync_MethodGroup:
        @typing.overload
        def __call__(self, requestUri: str, content: HttpContent) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: Uri, content: HttpContent) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: str, content: HttpContent, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, requestUri: Uri, content: HttpContent, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]:...

    # Skipped Send due to it being static, abstract and generic.

    Send : Send_MethodGroup
    class Send_MethodGroup:
        @typing.overload
        def __call__(self, request: HttpRequestMessage) -> HttpResponseMessage:...
        @typing.overload
        def __call__(self, request: HttpRequestMessage, completionOption: HttpCompletionOption) -> HttpResponseMessage:...
        @typing.overload
        def __call__(self, request: HttpRequestMessage, cancellationToken: CancellationToken) -> HttpResponseMessage:...
        @typing.overload
        def __call__(self, request: HttpRequestMessage, completionOption: HttpCompletionOption, cancellationToken: CancellationToken) -> HttpResponseMessage:...

    # Skipped SendAsync due to it being static, abstract and generic.

    SendAsync : SendAsync_MethodGroup
    class SendAsync_MethodGroup:
        @typing.overload
        def __call__(self, request: HttpRequestMessage) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, request: HttpRequestMessage, completionOption: HttpCompletionOption) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, request: HttpRequestMessage, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]:...
        @typing.overload
        def __call__(self, request: HttpRequestMessage, completionOption: HttpCompletionOption, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]:...



class HttpClientHandler(HttpMessageHandler):
    def __init__(self) -> None: ...
    @property
    def AllowAutoRedirect(self) -> bool: ...
    @AllowAutoRedirect.setter
    def AllowAutoRedirect(self, value: bool) -> bool: ...
    @property
    def AutomaticDecompression(self) -> DecompressionMethods: ...
    @AutomaticDecompression.setter
    def AutomaticDecompression(self, value: DecompressionMethods) -> DecompressionMethods: ...
    @property
    def CheckCertificateRevocationList(self) -> bool: ...
    @CheckCertificateRevocationList.setter
    def CheckCertificateRevocationList(self, value: bool) -> bool: ...
    @property
    def ClientCertificateOptions(self) -> ClientCertificateOption: ...
    @ClientCertificateOptions.setter
    def ClientCertificateOptions(self, value: ClientCertificateOption) -> ClientCertificateOption: ...
    @property
    def ClientCertificates(self) -> X509CertificateCollection: ...
    @property
    def CookieContainer(self) -> CookieContainer: ...
    @CookieContainer.setter
    def CookieContainer(self, value: CookieContainer) -> CookieContainer: ...
    @property
    def Credentials(self) -> ICredentials: ...
    @Credentials.setter
    def Credentials(self, value: ICredentials) -> ICredentials: ...
    @classmethod
    @property
    def DangerousAcceptAnyServerCertificateValidator(cls) -> Func_5[HttpRequestMessage, X509Certificate2, X509Chain, SslPolicyErrors, bool]: ...
    @property
    def DefaultProxyCredentials(self) -> ICredentials: ...
    @DefaultProxyCredentials.setter
    def DefaultProxyCredentials(self, value: ICredentials) -> ICredentials: ...
    @property
    def MaxAutomaticRedirections(self) -> int: ...
    @MaxAutomaticRedirections.setter
    def MaxAutomaticRedirections(self, value: int) -> int: ...
    @property
    def MaxConnectionsPerServer(self) -> int: ...
    @MaxConnectionsPerServer.setter
    def MaxConnectionsPerServer(self, value: int) -> int: ...
    @property
    def MaxRequestContentBufferSize(self) -> int: ...
    @MaxRequestContentBufferSize.setter
    def MaxRequestContentBufferSize(self, value: int) -> int: ...
    @property
    def MaxResponseHeadersLength(self) -> int: ...
    @MaxResponseHeadersLength.setter
    def MaxResponseHeadersLength(self, value: int) -> int: ...
    @property
    def PreAuthenticate(self) -> bool: ...
    @PreAuthenticate.setter
    def PreAuthenticate(self, value: bool) -> bool: ...
    @property
    def Properties(self) -> IDictionary_2[str, typing.Any]: ...
    @property
    def Proxy(self) -> IWebProxy: ...
    @Proxy.setter
    def Proxy(self, value: IWebProxy) -> IWebProxy: ...
    @property
    def ServerCertificateCustomValidationCallback(self) -> Func_5[HttpRequestMessage, X509Certificate2, X509Chain, SslPolicyErrors, bool]: ...
    @ServerCertificateCustomValidationCallback.setter
    def ServerCertificateCustomValidationCallback(self, value: Func_5[HttpRequestMessage, X509Certificate2, X509Chain, SslPolicyErrors, bool]) -> Func_5[HttpRequestMessage, X509Certificate2, X509Chain, SslPolicyErrors, bool]: ...
    @property
    def SslProtocols(self) -> SslProtocols: ...
    @SslProtocols.setter
    def SslProtocols(self, value: SslProtocols) -> SslProtocols: ...
    @property
    def SupportsAutomaticDecompression(self) -> bool: ...
    @property
    def SupportsProxy(self) -> bool: ...
    @property
    def SupportsRedirectConfiguration(self) -> bool: ...
    @property
    def UseCookies(self) -> bool: ...
    @UseCookies.setter
    def UseCookies(self, value: bool) -> bool: ...
    @property
    def UseDefaultCredentials(self) -> bool: ...
    @UseDefaultCredentials.setter
    def UseDefaultCredentials(self, value: bool) -> bool: ...
    @property
    def UseProxy(self) -> bool: ...
    @UseProxy.setter
    def UseProxy(self, value: bool) -> bool: ...


class HttpCompletionOption(typing.SupportsInt):
    @typing.overload
    def __init__(self, value : int) -> None: ...
    @typing.overload
    def __init__(self, value : int, force_if_true: bool) -> None: ...
    def __int__(self) -> int: ...
    
    # Values:
    ResponseContentRead : HttpCompletionOption # 0
    ResponseHeadersRead : HttpCompletionOption # 1


class HttpContent(IDisposable, abc.ABC):
    @property
    def Headers(self) -> HttpContentHeaders: ...
    def CopyTo(self, stream: Stream, context: TransportContext, cancellationToken: CancellationToken) -> None: ...
    def Dispose(self) -> None: ...
    # Skipped CopyToAsync due to it being static, abstract and generic.

    CopyToAsync : CopyToAsync_MethodGroup
    class CopyToAsync_MethodGroup:
        @typing.overload
        def __call__(self, stream: Stream) -> Task:...
        @typing.overload
        def __call__(self, stream: Stream, cancellationToken: CancellationToken) -> Task:...
        @typing.overload
        def __call__(self, stream: Stream, context: TransportContext) -> Task:...
        @typing.overload
        def __call__(self, stream: Stream, context: TransportContext, cancellationToken: CancellationToken) -> Task:...

    # Skipped LoadIntoBufferAsync due to it being static, abstract and generic.

    LoadIntoBufferAsync : LoadIntoBufferAsync_MethodGroup
    class LoadIntoBufferAsync_MethodGroup:
        @typing.overload
        def __call__(self) -> Task:...
        @typing.overload
        def __call__(self, maxBufferSize: int) -> Task:...

    # Skipped ReadAsByteArrayAsync due to it being static, abstract and generic.

    ReadAsByteArrayAsync : ReadAsByteArrayAsync_MethodGroup
    class ReadAsByteArrayAsync_MethodGroup:
        @typing.overload
        def __call__(self) -> Task_1[Array_1[int]]:...
        @typing.overload
        def __call__(self, cancellationToken: CancellationToken) -> Task_1[Array_1[int]]:...

    # Skipped ReadAsStream due to it being static, abstract and generic.

    ReadAsStream : ReadAsStream_MethodGroup
    class ReadAsStream_MethodGroup:
        @typing.overload
        def __call__(self) -> Stream:...
        @typing.overload
        def __call__(self, cancellationToken: CancellationToken) -> Stream:...

    # Skipped ReadAsStreamAsync due to it being static, abstract and generic.

    ReadAsStreamAsync : ReadAsStreamAsync_MethodGroup
    class ReadAsStreamAsync_MethodGroup:
        @typing.overload
        def __call__(self) -> Task_1[Stream]:...
        @typing.overload
        def __call__(self, cancellationToken: CancellationToken) -> Task_1[Stream]:...

    # Skipped ReadAsStringAsync due to it being static, abstract and generic.

    ReadAsStringAsync : ReadAsStringAsync_MethodGroup
    class ReadAsStringAsync_MethodGroup:
        @typing.overload
        def __call__(self) -> Task_1[str]:...
        @typing.overload
        def __call__(self, cancellationToken: CancellationToken) -> Task_1[str]:...



class HttpKeepAlivePingPolicy(typing.SupportsInt):
    @typing.overload
    def __init__(self, value : int) -> None: ...
    @typing.overload
    def __init__(self, value : int, force_if_true: bool) -> None: ...
    def __int__(self) -> int: ...
    
    # Values:
    WithActiveRequests : HttpKeepAlivePingPolicy # 0
    Always : HttpKeepAlivePingPolicy # 1


class HttpMessageHandler(IDisposable, abc.ABC):
    def Dispose(self) -> None: ...


class HttpMessageInvoker(IDisposable):
    @typing.overload
    def __init__(self, handler: HttpMessageHandler) -> None: ...
    @typing.overload
    def __init__(self, handler: HttpMessageHandler, disposeHandler: bool) -> None: ...
    def Dispose(self) -> None: ...
    def Send(self, request: HttpRequestMessage, cancellationToken: CancellationToken) -> HttpResponseMessage: ...
    def SendAsync(self, request: HttpRequestMessage, cancellationToken: CancellationToken) -> Task_1[HttpResponseMessage]: ...


class HttpMethod(IEquatable_1[HttpMethod]):
    def __init__(self, method: str) -> None: ...
    @classmethod
    @property
    def Delete(cls) -> HttpMethod: ...
    @classmethod
    @property
    def Get(cls) -> HttpMethod: ...
    @classmethod
    @property
    def Head(cls) -> HttpMethod: ...
    @property
    def Method(self) -> str: ...
    @classmethod
    @property
    def Options(cls) -> HttpMethod: ...
    @classmethod
    @property
    def Patch(cls) -> HttpMethod: ...
    @classmethod
    @property
    def Post(cls) -> HttpMethod: ...
    @classmethod
    @property
    def Put(cls) -> HttpMethod: ...
    @classmethod
    @property
    def Trace(cls) -> HttpMethod: ...
    def GetHashCode(self) -> int: ...
    def __eq__(self, left: HttpMethod, right: HttpMethod) -> bool: ...
    def __ne__(self, left: HttpMethod, right: HttpMethod) -> bool: ...
    def ToString(self) -> str: ...
    # Skipped Equals due to it being static, abstract and generic.

    Equals : Equals_MethodGroup
    class Equals_MethodGroup:
        @typing.overload
        def __call__(self, other: HttpMethod) -> bool:...
        @typing.overload
        def __call__(self, obj: typing.Any) -> bool:...



class HttpRequestException(Exception):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, message: str) -> None: ...
    @typing.overload
    def __init__(self, message: str, inner: Exception) -> None: ...
    @typing.overload
    def __init__(self, message: str, inner: Exception, statusCode: typing.Optional[HttpStatusCode]) -> None: ...
    @property
    def Data(self) -> IDictionary: ...
    @property
    def HelpLink(self) -> str: ...
    @HelpLink.setter
    def HelpLink(self, value: str) -> str: ...
    @property
    def HResult(self) -> int: ...
    @HResult.setter
    def HResult(self, value: int) -> int: ...
    @property
    def InnerException(self) -> Exception: ...
    @property
    def Message(self) -> str: ...
    @property
    def Source(self) -> str: ...
    @Source.setter
    def Source(self, value: str) -> str: ...
    @property
    def StackTrace(self) -> str: ...
    @property
    def StatusCode(self) -> typing.Optional[HttpStatusCode]: ...
    @property
    def TargetSite(self) -> MethodBase: ...


class HttpRequestMessage(IDisposable):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, method: HttpMethod, requestUri: Uri) -> None: ...
    @typing.overload
    def __init__(self, method: HttpMethod, requestUri: str) -> None: ...
    @property
    def Content(self) -> HttpContent: ...
    @Content.setter
    def Content(self, value: HttpContent) -> HttpContent: ...
    @property
    def Headers(self) -> HttpRequestHeaders: ...
    @property
    def Method(self) -> HttpMethod: ...
    @Method.setter
    def Method(self, value: HttpMethod) -> HttpMethod: ...
    @property
    def Options(self) -> HttpRequestOptions: ...
    @property
    def Properties(self) -> IDictionary_2[str, typing.Any]: ...
    @property
    def RequestUri(self) -> Uri: ...
    @RequestUri.setter
    def RequestUri(self, value: Uri) -> Uri: ...
    @property
    def Version(self) -> Version: ...
    @Version.setter
    def Version(self, value: Version) -> Version: ...
    @property
    def VersionPolicy(self) -> HttpVersionPolicy: ...
    @VersionPolicy.setter
    def VersionPolicy(self, value: HttpVersionPolicy) -> HttpVersionPolicy: ...
    def Dispose(self) -> None: ...
    def ToString(self) -> str: ...


class HttpRequestOptions(IDictionary_2[str, typing.Any]):
    def __init__(self) -> None: ...
    # Skipped Set due to it being static, abstract and generic.

    Set : Set_MethodGroup
    class Set_MethodGroup:
        def __getitem__(self, t:typing.Type[Set_1_T1]) -> Set_1[Set_1_T1]: ...

        Set_1_T1 = typing.TypeVar('Set_1_T1')
        class Set_1(typing.Generic[Set_1_T1]):
            Set_1_TValue = HttpRequestOptions.Set_MethodGroup.Set_1_T1
            def __call__(self, key: HttpRequestOptionsKey_1[Set_1_TValue], value: Set_1_TValue) -> None:...


    # Skipped TryGetValue due to it being static, abstract and generic.

    TryGetValue : TryGetValue_MethodGroup
    class TryGetValue_MethodGroup:
        def __getitem__(self, t:typing.Type[TryGetValue_1_T1]) -> TryGetValue_1[TryGetValue_1_T1]: ...

        TryGetValue_1_T1 = typing.TypeVar('TryGetValue_1_T1')
        class TryGetValue_1(typing.Generic[TryGetValue_1_T1]):
            TryGetValue_1_TValue = HttpRequestOptions.TryGetValue_MethodGroup.TryGetValue_1_T1
            def __call__(self, key: HttpRequestOptionsKey_1[TryGetValue_1_TValue], value: clr.Reference[TryGetValue_1_TValue]) -> bool:...




class HttpRequestOptionsKey_GenericClasses(abc.ABCMeta):
    Generic_HttpRequestOptionsKey_GenericClasses_HttpRequestOptionsKey_1_TValue = typing.TypeVar('Generic_HttpRequestOptionsKey_GenericClasses_HttpRequestOptionsKey_1_TValue')
    def __getitem__(self, types : typing.Type[Generic_HttpRequestOptionsKey_GenericClasses_HttpRequestOptionsKey_1_TValue]) -> typing.Type[HttpRequestOptionsKey_1[Generic_HttpRequestOptionsKey_GenericClasses_HttpRequestOptionsKey_1_TValue]]: ...

HttpRequestOptionsKey : HttpRequestOptionsKey_GenericClasses

HttpRequestOptionsKey_1_TValue = typing.TypeVar('HttpRequestOptionsKey_1_TValue')
class HttpRequestOptionsKey_1(typing.Generic[HttpRequestOptionsKey_1_TValue]):
    def __init__(self, key: str) -> None: ...
    @property
    def Key(self) -> str: ...


class HttpResponseMessage(IDisposable):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, statusCode: HttpStatusCode) -> None: ...
    @property
    def Content(self) -> HttpContent: ...
    @Content.setter
    def Content(self, value: HttpContent) -> HttpContent: ...
    @property
    def Headers(self) -> HttpResponseHeaders: ...
    @property
    def IsSuccessStatusCode(self) -> bool: ...
    @property
    def ReasonPhrase(self) -> str: ...
    @ReasonPhrase.setter
    def ReasonPhrase(self, value: str) -> str: ...
    @property
    def RequestMessage(self) -> HttpRequestMessage: ...
    @RequestMessage.setter
    def RequestMessage(self, value: HttpRequestMessage) -> HttpRequestMessage: ...
    @property
    def StatusCode(self) -> HttpStatusCode: ...
    @StatusCode.setter
    def StatusCode(self, value: HttpStatusCode) -> HttpStatusCode: ...
    @property
    def TrailingHeaders(self) -> HttpResponseHeaders: ...
    @property
    def Version(self) -> Version: ...
    @Version.setter
    def Version(self, value: Version) -> Version: ...
    def Dispose(self) -> None: ...
    def EnsureSuccessStatusCode(self) -> HttpResponseMessage: ...
    def ToString(self) -> str: ...


class HttpVersionPolicy(typing.SupportsInt):
    @typing.overload
    def __init__(self, value : int) -> None: ...
    @typing.overload
    def __init__(self, value : int, force_if_true: bool) -> None: ...
    def __int__(self) -> int: ...
    
    # Values:
    RequestVersionOrLower : HttpVersionPolicy # 0
    RequestVersionOrHigher : HttpVersionPolicy # 1
    RequestVersionExact : HttpVersionPolicy # 2


class MessageProcessingHandler(DelegatingHandler):
    @property
    def InnerHandler(self) -> HttpMessageHandler: ...
    @InnerHandler.setter
    def InnerHandler(self, value: HttpMessageHandler) -> HttpMessageHandler: ...


class MultipartContent(HttpContent, IEnumerable_1[HttpContent]):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, subtype: str) -> None: ...
    @typing.overload
    def __init__(self, subtype: str, boundary: str) -> None: ...
    @property
    def HeaderEncodingSelector(self) -> HeaderEncodingSelector_1[HttpContent]: ...
    @HeaderEncodingSelector.setter
    def HeaderEncodingSelector(self, value: HeaderEncodingSelector_1[HttpContent]) -> HeaderEncodingSelector_1[HttpContent]: ...
    @property
    def Headers(self) -> HttpContentHeaders: ...
    def Add(self, content: HttpContent) -> None: ...
    def GetEnumerator(self) -> IEnumerator_1[HttpContent]: ...


class MultipartFormDataContent(MultipartContent):
    @typing.overload
    def __init__(self) -> None: ...
    @typing.overload
    def __init__(self, boundary: str) -> None: ...
    @property
    def HeaderEncodingSelector(self) -> HeaderEncodingSelector_1[HttpContent]: ...
    @HeaderEncodingSelector.setter
    def HeaderEncodingSelector(self, value: HeaderEncodingSelector_1[HttpContent]) -> HeaderEncodingSelector_1[HttpContent]: ...
    @property
    def Headers(self) -> HttpContentHeaders: ...
    # Skipped Add due to it being static, abstract and generic.

    Add : Add_MethodGroup
    class Add_MethodGroup:
        @typing.overload
        def __call__(self, content: HttpContent) -> None:...
        @typing.overload
        def __call__(self, content: HttpContent, name: str) -> None:...
        @typing.overload
        def __call__(self, content: HttpContent, name: str, fileName: str) -> None:...



class ReadOnlyMemoryContent(HttpContent):
    def __init__(self, content: ReadOnlyMemory_1[int]) -> None: ...
    @property
    def Headers(self) -> HttpContentHeaders: ...


class SocketsHttpConnectionContext:
    @property
    def DnsEndPoint(self) -> DnsEndPoint: ...
    @property
    def InitialRequestMessage(self) -> HttpRequestMessage: ...


class SocketsHttpHandler(HttpMessageHandler):
    def __init__(self) -> None: ...
    @property
    def ActivityHeadersPropagator(self) -> DistributedContextPropagator: ...
    @ActivityHeadersPropagator.setter
    def ActivityHeadersPropagator(self, value: DistributedContextPropagator) -> DistributedContextPropagator: ...
    @property
    def AllowAutoRedirect(self) -> bool: ...
    @AllowAutoRedirect.setter
    def AllowAutoRedirect(self, value: bool) -> bool: ...
    @property
    def AutomaticDecompression(self) -> DecompressionMethods: ...
    @AutomaticDecompression.setter
    def AutomaticDecompression(self, value: DecompressionMethods) -> DecompressionMethods: ...
    @property
    def ConnectCallback(self) -> Func_3[SocketsHttpConnectionContext, CancellationToken, ValueTask_1[Stream]]: ...
    @ConnectCallback.setter
    def ConnectCallback(self, value: Func_3[SocketsHttpConnectionContext, CancellationToken, ValueTask_1[Stream]]) -> Func_3[SocketsHttpConnectionContext, CancellationToken, ValueTask_1[Stream]]: ...
    @property
    def ConnectTimeout(self) -> TimeSpan: ...
    @ConnectTimeout.setter
    def ConnectTimeout(self, value: TimeSpan) -> TimeSpan: ...
    @property
    def CookieContainer(self) -> CookieContainer: ...
    @CookieContainer.setter
    def CookieContainer(self, value: CookieContainer) -> CookieContainer: ...
    @property
    def Credentials(self) -> ICredentials: ...
    @Credentials.setter
    def Credentials(self, value: ICredentials) -> ICredentials: ...
    @property
    def DefaultProxyCredentials(self) -> ICredentials: ...
    @DefaultProxyCredentials.setter
    def DefaultProxyCredentials(self, value: ICredentials) -> ICredentials: ...
    @property
    def EnableMultipleHttp2Connections(self) -> bool: ...
    @EnableMultipleHttp2Connections.setter
    def EnableMultipleHttp2Connections(self, value: bool) -> bool: ...
    @property
    def Expect100ContinueTimeout(self) -> TimeSpan: ...
    @Expect100ContinueTimeout.setter
    def Expect100ContinueTimeout(self, value: TimeSpan) -> TimeSpan: ...
    @property
    def InitialHttp2StreamWindowSize(self) -> int: ...
    @InitialHttp2StreamWindowSize.setter
    def InitialHttp2StreamWindowSize(self, value: int) -> int: ...
    @classmethod
    @property
    def IsSupported(cls) -> bool: ...
    @property
    def KeepAlivePingDelay(self) -> TimeSpan: ...
    @KeepAlivePingDelay.setter
    def KeepAlivePingDelay(self, value: TimeSpan) -> TimeSpan: ...
    @property
    def KeepAlivePingPolicy(self) -> HttpKeepAlivePingPolicy: ...
    @KeepAlivePingPolicy.setter
    def KeepAlivePingPolicy(self, value: HttpKeepAlivePingPolicy) -> HttpKeepAlivePingPolicy: ...
    @property
    def KeepAlivePingTimeout(self) -> TimeSpan: ...
    @KeepAlivePingTimeout.setter
    def KeepAlivePingTimeout(self, value: TimeSpan) -> TimeSpan: ...
    @property
    def MaxAutomaticRedirections(self) -> int: ...
    @MaxAutomaticRedirections.setter
    def MaxAutomaticRedirections(self, value: int) -> int: ...
    @property
    def MaxConnectionsPerServer(self) -> int: ...
    @MaxConnectionsPerServer.setter
    def MaxConnectionsPerServer(self, value: int) -> int: ...
    @property
    def MaxResponseDrainSize(self) -> int: ...
    @MaxResponseDrainSize.setter
    def MaxResponseDrainSize(self, value: int) -> int: ...
    @property
    def MaxResponseHeadersLength(self) -> int: ...
    @MaxResponseHeadersLength.setter
    def MaxResponseHeadersLength(self, value: int) -> int: ...
    @property
    def PlaintextStreamFilter(self) -> Func_3[SocketsHttpPlaintextStreamFilterContext, CancellationToken, ValueTask_1[Stream]]: ...
    @PlaintextStreamFilter.setter
    def PlaintextStreamFilter(self, value: Func_3[SocketsHttpPlaintextStreamFilterContext, CancellationToken, ValueTask_1[Stream]]) -> Func_3[SocketsHttpPlaintextStreamFilterContext, CancellationToken, ValueTask_1[Stream]]: ...
    @property
    def PooledConnectionIdleTimeout(self) -> TimeSpan: ...
    @PooledConnectionIdleTimeout.setter
    def PooledConnectionIdleTimeout(self, value: TimeSpan) -> TimeSpan: ...
    @property
    def PooledConnectionLifetime(self) -> TimeSpan: ...
    @PooledConnectionLifetime.setter
    def PooledConnectionLifetime(self, value: TimeSpan) -> TimeSpan: ...
    @property
    def PreAuthenticate(self) -> bool: ...
    @PreAuthenticate.setter
    def PreAuthenticate(self, value: bool) -> bool: ...
    @property
    def Properties(self) -> IDictionary_2[str, typing.Any]: ...
    @property
    def Proxy(self) -> IWebProxy: ...
    @Proxy.setter
    def Proxy(self, value: IWebProxy) -> IWebProxy: ...
    @property
    def RequestHeaderEncodingSelector(self) -> HeaderEncodingSelector_1[HttpRequestMessage]: ...
    @RequestHeaderEncodingSelector.setter
    def RequestHeaderEncodingSelector(self, value: HeaderEncodingSelector_1[HttpRequestMessage]) -> HeaderEncodingSelector_1[HttpRequestMessage]: ...
    @property
    def ResponseDrainTimeout(self) -> TimeSpan: ...
    @ResponseDrainTimeout.setter
    def ResponseDrainTimeout(self, value: TimeSpan) -> TimeSpan: ...
    @property
    def ResponseHeaderEncodingSelector(self) -> HeaderEncodingSelector_1[HttpRequestMessage]: ...
    @ResponseHeaderEncodingSelector.setter
    def ResponseHeaderEncodingSelector(self, value: HeaderEncodingSelector_1[HttpRequestMessage]) -> HeaderEncodingSelector_1[HttpRequestMessage]: ...
    @property
    def SslOptions(self) -> SslClientAuthenticationOptions: ...
    @SslOptions.setter
    def SslOptions(self, value: SslClientAuthenticationOptions) -> SslClientAuthenticationOptions: ...
    @property
    def UseCookies(self) -> bool: ...
    @UseCookies.setter
    def UseCookies(self, value: bool) -> bool: ...
    @property
    def UseProxy(self) -> bool: ...
    @UseProxy.setter
    def UseProxy(self, value: bool) -> bool: ...


class SocketsHttpPlaintextStreamFilterContext:
    @property
    def InitialRequestMessage(self) -> HttpRequestMessage: ...
    @property
    def NegotiatedHttpVersion(self) -> Version: ...
    @property
    def PlaintextStream(self) -> Stream: ...


class StreamContent(HttpContent):
    @typing.overload
    def __init__(self, content: Stream) -> None: ...
    @typing.overload
    def __init__(self, content: Stream, bufferSize: int) -> None: ...
    @property
    def Headers(self) -> HttpContentHeaders: ...


class StringContent(ByteArrayContent):
    @typing.overload
    def __init__(self, content: str) -> None: ...
    @typing.overload
    def __init__(self, content: str, encoding: Encoding) -> None: ...
    @typing.overload
    def __init__(self, content: str, encoding: Encoding, mediaType: str) -> None: ...
    @property
    def Headers(self) -> HttpContentHeaders: ...

