<?xml version="1.0"?>
<doc>
    <assembly>
        <name>DiscordRPC</name>
    </assembly>
    <members>
        <member name="T:DiscordRPC.Configuration">
            <summary>
            Configuration of the current RPC connection
            </summary>
        </member>
        <member name="P:DiscordRPC.Configuration.ApiEndpoint">
            <summary>
            The Discord API endpoint that should be used.
            </summary>
        </member>
        <member name="P:DiscordRPC.Configuration.CdnHost">
            <summary>
            The CDN endpoint
            </summary>
        </member>
        <member name="P:DiscordRPC.Configuration.Environment">
            <summary>
            The type of environment the connection on. Usually Production. 
            </summary>
        </member>
        <member name="T:DiscordRPC.Converters.EnumSnakeCaseConverter">
            <summary>
            Converts enums with the <see cref="T:DiscordRPC.Converters.EnumValueAttribute"/> into Json friendly terms. 
            </summary>
        </member>
        <member name="T:DiscordRPC.DiscordRpcClient">
            <summary>
            A Discord RPC Client which is used to send Rich Presence updates and receive Join / Spectate events.
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.HasRegisteredUriScheme">
            <summary>
            Gets a value indicating if the client has registered a URI Scheme. If this is false, Join / Spectate events will fail.
            <para>To register a URI Scheme, call <see cref="M:DiscordRPC.DiscordRpcClient.RegisterUriScheme(System.String,System.String)"/>.</para>
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.ApplicationID">
            <summary>
            Gets the Application ID of the RPC Client.
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.SteamID">
            <summary>
            Gets the Steam ID of the RPC Client. This value can be null if none was supplied.
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.ProcessID">
            <summary>
            Gets the ID of the process used to run the RPC Client. Discord tracks this process ID and waits for its termination. Defaults to the current application process ID.
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.MaxQueueSize">
            <summary>
            The maximum size of the message queue received from Discord. 
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.IsDisposed">
            <summary>
            The dispose state of the client object.
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.Logger">
            <summary>
            The logger used this client and its associated components. <see cref="T:DiscordRPC.Logging.ILogger"/> are not called safely and can come from any thread. It is upto the <see cref="T:DiscordRPC.Logging.ILogger"/> to account for this and apply appropriate thread safe methods.
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.AutoEvents">
            <summary>
            Indicates if the client will automatically invoke the events without <see cref="M:DiscordRPC.DiscordRpcClient.Invoke"/> having to be called. 
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.SkipIdenticalPresence">
            <summary>
            Skips sending presences that are identical to the current one.
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.TargetPipe">
            <summary>
            The pipe the discord client is on, ranging from 0 to 9. Use -1 to scan through all pipes.
            <para>This property can be used for testing multiple clients. For example, if a Discord Client was on pipe 0, the Discord Canary is most likely on pipe 1.</para>
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.CurrentPresence">
            <summary>
            The current presence that the client has. Gets set with <see cref="M:DiscordRPC.DiscordRpcClient.SetPresence(DiscordRPC.RichPresence)"/> and updated on <see cref="E:DiscordRPC.DiscordRpcClient.OnPresenceUpdate"/>.
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.Subscription">
            <summary>
            Current subscription to events. Gets set with <see cref="M:DiscordRPC.DiscordRpcClient.Subscribe(DiscordRPC.EventType)"/>, <see cref="T:DiscordRPC.Message.UnsubscribeMessage"/> and updated on <see cref="E:DiscordRPC.DiscordRpcClient.OnSubscribe"/>, <see cref="E:DiscordRPC.DiscordRpcClient.OnUnsubscribe"/>.
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.CurrentUser">
            <summary>
            The current discord user. This is updated with the ready event and will be null until the event is fired from the connection.
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.Configuration">
            <summary>
            The current configuration the connection is using. Only becomes available after a ready event.
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.IsInitialized">
            <summary>
            Represents if the client has been <see cref="M:DiscordRPC.DiscordRpcClient.Initialize"/>
            </summary>
        </member>
        <member name="P:DiscordRPC.DiscordRpcClient.ShutdownOnly">
            <summary>
            Forces the connection to shutdown gracefully instead of just aborting the connection.
            <para>This option helps prevents ghosting in applications where the Process ID is a host and the game is executed within the host (ie: the Unity3D editor). This will tell Discord that we have no presence and we are closing the connection manually, instead of waiting for the process to terminate.</para>
            </summary>
        </member>
        <member name="E:DiscordRPC.DiscordRpcClient.OnReady">
            <summary>
            Called when the discord client is ready to send and receive messages.
            <para>If <see cref="P:DiscordRPC.DiscordRpcClient.AutoEvents"/> is true then this event will execute on a different thread. If it is not true however, then this event is not invoked untill <see cref="M:DiscordRPC.DiscordRpcClient.Invoke"/> and will be on the calling thread.</para>
            </summary>
        </member>
        <member name="E:DiscordRPC.DiscordRpcClient.OnClose">
            <summary>
            Called when connection to the Discord Client is lost. The connection will remain close and unready to accept messages until the Ready event is called again.
            <para>If <see cref="P:DiscordRPC.DiscordRpcClient.AutoEvents"/> is true then this event will execute on a different thread. If it is not true however, then this event is not invoked untill <see cref="M:DiscordRPC.DiscordRpcClient.Invoke"/> and will be on the calling thread.</para>
            </summary>
        </member>
        <member name="E:DiscordRPC.DiscordRpcClient.OnError">
            <summary>
            Called when a error has occured during the transmission of a message. For example, if a bad Rich Presence payload is sent, this event will be called explaining what went wrong.
            <para>If <see cref="P:DiscordRPC.DiscordRpcClient.AutoEvents"/> is true then this event will execute on a different thread. If it is not true however, then this event is not invoked untill <see cref="M:DiscordRPC.DiscordRpcClient.Invoke"/> and will be on the calling thread.</para>
            </summary>
        </member>
        <member name="E:DiscordRPC.DiscordRpcClient.OnPresenceUpdate">
            <summary>
            Called when the Discord Client has updated the presence.
            <para>If <see cref="P:DiscordRPC.DiscordRpcClient.AutoEvents"/> is true then this event will execute on a different thread. If it is not true however, then this event is not invoked untill <see cref="M:DiscordRPC.DiscordRpcClient.Invoke"/> and will be on the calling thread.</para>
            </summary>
        </member>
        <member name="E:DiscordRPC.DiscordRpcClient.OnSubscribe">
            <summary>
            Called when the Discord Client has subscribed to an event.
            <para>If <see cref="P:DiscordRPC.DiscordRpcClient.AutoEvents"/> is true then this event will execute on a different thread. If it is not true however, then this event is not invoked untill <see cref="M:DiscordRPC.DiscordRpcClient.Invoke"/> and will be on the calling thread.</para>
            </summary>
        </member>
        <member name="E:DiscordRPC.DiscordRpcClient.OnUnsubscribe">
            <summary>
            Called when the Discord Client has unsubscribed from an event.
            <para>If <see cref="P:DiscordRPC.DiscordRpcClient.AutoEvents"/> is true then this event will execute on a different thread. If it is not true however, then this event is not invoked untill <see cref="M:DiscordRPC.DiscordRpcClient.Invoke"/> and will be on the calling thread.</para>
            </summary>
        </member>
        <member name="E:DiscordRPC.DiscordRpcClient.OnJoin">
            <summary>
            Called when the Discord Client wishes for this process to join a game.
            <para>If <see cref="P:DiscordRPC.DiscordRpcClient.AutoEvents"/> is true then this event will execute on a different thread. If it is not true however, then this event is not invoked untill <see cref="M:DiscordRPC.DiscordRpcClient.Invoke"/> and will be on the calling thread.</para>
            </summary>
        </member>
        <member name="E:DiscordRPC.DiscordRpcClient.OnSpectate">
            <summary>
            Called when the Discord Client wishes for this process to spectate a game.
            <para>If <see cref="P:DiscordRPC.DiscordRpcClient.AutoEvents"/> is true then this event will execute on a different thread. If it is not true however, then this event is not invoked untill <see cref="M:DiscordRPC.DiscordRpcClient.Invoke"/> and will be on the calling thread.</para>
            </summary>
        </member>
        <member name="E:DiscordRPC.DiscordRpcClient.OnJoinRequested">
            <summary>
            Called when another discord user requests permission to join this game.
            <para>This event is not invoked untill <see cref="M:DiscordRPC.DiscordRpcClient.Invoke"/> is executed.</para>
            </summary>
        </member>
        <member name="E:DiscordRPC.DiscordRpcClient.OnConnectionEstablished">
            <summary>
            The connection to the discord client was succesfull. This is called before <see cref="F:DiscordRPC.Message.MessageType.Ready"/>.
            <para>If <see cref="P:DiscordRPC.DiscordRpcClient.AutoEvents"/> is true then this event will execute on a different thread. If it is not true however, then this event is not invoked untill <see cref="M:DiscordRPC.DiscordRpcClient.Invoke"/> and will be on the calling thread.</para>
            </summary>
        </member>
        <member name="E:DiscordRPC.DiscordRpcClient.OnConnectionFailed">
            <summary>
            Failed to establish any connection with discord. Discord is potentially not running?
            <para>If <see cref="P:DiscordRPC.DiscordRpcClient.AutoEvents"/> is true then this event will execute on a different thread. If it is not true however, then this event is not invoked untill <see cref="M:DiscordRPC.DiscordRpcClient.Invoke"/> and will be on the calling thread.</para>
            </summary>
        </member>
        <member name="E:DiscordRPC.DiscordRpcClient.OnRpcMessage">
            <summary>
            The RPC Connection has sent a message. Called before any other event and executed from the RPC Thread.
            </summary>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.#ctor(System.String)">
            <summary>
            Creates a new Discord RPC Client which can be used to send Rich Presence and receive Join / Spectate events.
            </summary>
            <param name="applicationID">The ID of the application created at discord's developers portal.</param>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.#ctor(System.String,System.Int32,DiscordRPC.Logging.ILogger,System.Boolean,DiscordRPC.IO.INamedPipeClient)">
            <summary>
            Creates a new Discord RPC Client which can be used to send Rich Presence and receive Join / Spectate events. This constructor exposes more advance features such as custom NamedPipeClients and Loggers.
            </summary>
            <param name="applicationID">The ID of the application created at discord's developers portal.</param>
            <param name="pipe">The pipe to connect too. If -1, then the client will scan for the first available instance of Discord.</param>
            <param name="logger">The logger used to report messages. If null, then a <see cref="T:DiscordRPC.Logging.NullLogger"/> will be created and logs will be ignored.</param>
            <param name="autoEvents">Should events be automatically invoked from the RPC Thread as they arrive from discord?</param>
            <param name="client">The pipe client to use and communicate to discord through. If null, the default <see cref="T:DiscordRPC.IO.ManagedNamedPipeClient"/> will be used.</param>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.Invoke">
            <summary>
            Dequeues all the messages from Discord, processes them and then invoke appropriate event handlers. This will process the message and update the internal state before invoking the events. Returns the messages that were invoked in the order they were invoked.
            <para>This method cannot be used if <see cref="P:DiscordRPC.DiscordRpcClient.AutoEvents"/> is enabled.</para>
            </summary>
            <returns>Returns the messages that were invoked and in the order they were invoked.</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.ProcessMessage(DiscordRPC.Message.IMessage)">
            <summary>
            Processes the message, updating our internal state and then invokes the events.
            </summary>
            <param name="message"></param>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.Respond(DiscordRPC.Message.JoinRequestMessage,System.Boolean)">
            <summary>
            Respond to a Join Request. All requests will timeout after 30 seconds.
            <para>Because of the 30 second timeout, it is recommended to call <seealso cref="M:DiscordRPC.DiscordRpcClient.Invoke"/> faster than every 15 seconds to give your users adequate time to respond to the request.</para>
            </summary>
            <param name="request">The request that is being responded too.</param>
            <param name="acceptRequest">Accept the join request.</param>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.SetPresence(DiscordRPC.RichPresence)">
            <summary>
            Sets the Rich Presence.
            </summary>
            <param name="presence">The Rich Presence to set on the current Discord user.</param>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.Update(System.Action{DiscordRPC.RichPresence})">
            <summary>
            Updates the values assigned in the delegate passed
            </summary>
            <param name="func">Delegate used to update the rich presence</param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdateType(DiscordRPC.ActivityType)">
            <summary>
            Updates only the <see cref="P:DiscordRPC.BaseRichPresence.Type"/> of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> and sends the updated presence to Discord. Returns the newly edited Rich Presence.
            </summary>
            <param name="type">The type of the Rich Presence</param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdateStatusDisplayType(DiscordRPC.StatusDisplayType)">
            <summary>
            Updates only the <see cref="P:DiscordRPC.BaseRichPresence.StatusDisplay"/> of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> and sends the updated presence to Discord. Returns the newly edited Rich Presence.
            </summary>
            <param name="type">The type to display on the status</param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdateButtons(DiscordRPC.Button[])">
            <summary>
            Updates only the <see cref="P:DiscordRPC.RichPresence.Buttons"/> of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> and updates/removes the buttons. Returns the newly edited Rich Presence.
            </summary>
            <param name="buttons">The buttons of the Rich Presence</param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.SetButton(DiscordRPC.Button,System.Int32)">
            <summary>
            Updates only the <see cref="P:DiscordRPC.RichPresence.Buttons"/> of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> and updates the button with the given index. Returns the newly edited Rich Presence.
            </summary>
            <param name="button">The buttons of the Rich Presence</param>
            <param name="index">The number of the button</param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdateDetails(System.String)">
            <summary>
            Updates only the <see cref="P:DiscordRPC.BaseRichPresence.Details"/> of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> and sends the updated presence to Discord. Returns the newly edited Rich Presence.
            </summary>
            <param name="details">The details of the Rich Presence</param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdateState(System.String)">
            <summary>
            Updates only the <see cref="P:DiscordRPC.BaseRichPresence.State"/> of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> and sends the updated presence to Discord. Returns the newly edited Rich Presence.
            </summary>
            <param name="state">The state of the Rich Presence</param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdateParty(DiscordRPC.Party)">
            <summary>
            Updates only the <see cref="P:DiscordRPC.BaseRichPresence.Party"/> of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> and sends the updated presence to Discord. Returns the newly edited Rich Presence.
            </summary>
            <param name="party">The party of the Rich Presence</param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdatePartySize(System.Int32)">
            <summary>
            Updates the <see cref="P:DiscordRPC.Party.Size"/> of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> and sends the update presence to Discord. Returns the newly edited Rich Presence.
            <para>Will return null if no presence exists and will throw a new <see cref="T:System.NullReferenceException"/> if the Party does not exist.</para>
            </summary>
            <param name="size">The new size of the party. It cannot be greater than <see cref="P:DiscordRPC.Party.Max"/></param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdatePartySize(System.Int32,System.Int32)">
            <summary>
            Updates the <see cref="P:DiscordRPC.Party.Size"/> of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> and sends the update presence to Discord. Returns the newly edited Rich Presence.
            <para>Will return null if no presence exists and will throw a new <see cref="T:System.NullReferenceException"/> if the Party does not exist.</para>
            </summary>
            <param name="size">The new size of the party. It cannot be greater than <see cref="P:DiscordRPC.Party.Max"/></param>
            <param name="max">The new size of the party. It cannot be smaller than <see cref="P:DiscordRPC.Party.Size"/></param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdateLargeAsset(System.String,System.String)">
            <summary>
            Updates the large <see cref="T:DiscordRPC.Assets"/> of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> and sends the updated presence to Discord. Both <paramref name="key"/> and <paramref name="tooltip"/> are optional and will be ignored it null.
            </summary>
            <param name="key">Optional: The new key to set the asset too</param>
            <param name="tooltip">Optional: The new tooltip to display on the asset</param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdateSmallAsset(System.String,System.String)">
            <summary>
            Updates the small <see cref="T:DiscordRPC.Assets"/> of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> and sends the updated presence to Discord. Both <paramref name="key"/> and <paramref name="tooltip"/> are optional and will be ignored it null.
            </summary>
            <param name="key">Optional: The new key to set the asset too</param>
            <param name="tooltip">Optional: The new tooltip to display on the asset</param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdateSecrets(DiscordRPC.Secrets)">
            <summary>
            Updates the <see cref="T:DiscordRPC.Secrets"/> of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> and sends the updated presence to Discord. Will override previous secret entirely.
            </summary>
            <param name="secrets">The new secret to send to discord.</param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdateStartTime">
            <summary>
            Sets the start time of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> to now and sends the updated presence to Discord.
            </summary>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdateStartTime(System.DateTime)">
            <summary>
            Sets the start time of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> and sends the updated presence to Discord.
            </summary>
            <param name="time">The new time for the start</param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdateEndTime">
            <summary>
            Sets the end time of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> to now and sends the updated presence to Discord.
            </summary>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdateEndTime(System.DateTime)">
            <summary>
            Sets the end time of the <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> and sends the updated presence to Discord.
            </summary>
            <param name="time">The new time for the end</param>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.UpdateClearTime">
            <summary>
            Sets the start and end time of <see cref="P:DiscordRPC.DiscordRpcClient.CurrentPresence"/> to null and sends it to Discord.
            </summary>
            <returns>Updated Rich Presence</returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.ClearPresence">
            <summary>
            Clears the Rich Presence. Use this just before disposal to prevent ghosting.
            </summary>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.RegisterUriScheme(System.String,System.String)">
            <summary>
            Registers the application executable to a custom URI Scheme.
            <para>This is required for the Join and Spectate features. Discord will run this custom URI Scheme to launch your application when a user presses either of the buttons.</para>
            </summary>
            <param name="steamAppID">Optional Steam ID. If supplied, Discord will launch the game through steam instead of directly calling it.</param>
            <param name="executable">The path to the executable. If null, the path to the current executable will be used instead.</param>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.Subscribe(DiscordRPC.EventType)">
            <summary>
            Subscribes to an event sent from discord. Used for Join / Spectate feature.
            <para>Requires the UriScheme to be registered.</para>
            </summary>
            <param name="type">The event type to subscribe to</param>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.Unsubscribe(DiscordRPC.EventType)">
            <summary>
            Unsubscribe from the event sent by discord. Used for Join / Spectate feature.
            <para>Requires the UriScheme to be registered.</para>
            </summary>
            <param name="type">The event type to unsubscribe from</param>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.SetSubscription(DiscordRPC.EventType)">
            <summary>
            Sets the subscription to the events sent from Discord.
            <para>Requires the UriScheme to be registered.</para>
            </summary>
            <param name="type">The new subscription as a flag. Events selected in the flag will be subscribed too and the other events will be unsubscribed.</param>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.SubscribeToTypes(DiscordRPC.EventType,System.Boolean)">
            <summary>
            Simple helper function that will subscribe to the specified types in the flag.
            </summary>
            <param name="type">The flag to subscribe to</param>
            <param name="isUnsubscribe">Represents if the unsubscribe payload should be sent instead.</param>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.SynchronizeState">
            <summary>
            Resends the current presence and subscription. This is used when Ready is called to keep the current state within discord.
            </summary>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.Initialize">
            <summary>
            Attempts to initalize a connection to the Discord IPC.
            </summary>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.Deinitialize">
            <summary>
            Attempts to disconnect and deinitialize the IPC connection while retaining the settings.
            </summary>
        </member>
        <member name="M:DiscordRPC.DiscordRpcClient.Dispose">
            <summary>
            Terminates the connection to Discord and disposes of the object.
            </summary>
        </member>
        <member name="T:DiscordRPC.ActivityType">
            <summary>
            Rich Presence activity type
            </summary>
        </member>
        <member name="F:DiscordRPC.ActivityType.Playing">
            <summary>
            Playing status type. Displays as "Playing ..."
            </summary>
        </member>
        <member name="F:DiscordRPC.ActivityType.Listening">
            <summary>
            Listening status type. Displays as "Listening to ..."
            </summary>
        </member>
        <member name="F:DiscordRPC.ActivityType.Watching">
            <summary>
            Watching status type. Displays as "Watching ..."
            </summary>
        </member>
        <member name="F:DiscordRPC.ActivityType.Competing">
            <summary>
            Competing status type. Displays as "Competing in ..."
            </summary>
        </member>
        <member name="T:DiscordRPC.Assets">
            <summary>
            Information about the pictures used in the Rich Presence.
            </summary>
        </member>
        <member name="P:DiscordRPC.Assets.LargeImageKey">
            <summary>
            Name of the uploaded image for the large profile artwork.
            <para>Max 256 characters.</para>
            </summary>
            <remarks>Allows URL to directly link to images.</remarks>
        </member>
        <member name="P:DiscordRPC.Assets.LargeImageText">
            <summary>
            The tooltip for the large square image. For example, "Summoners Rift" or "Horizon Lunar Colony".
            <para>Max 128 characters.</para>
            </summary>
        </member>
        <member name="P:DiscordRPC.Assets.LargeImageUrl">
            <summary>
            URL that is linked to when clicking on the large image in the activity card.
            <para>Max 256 characters.</para>
            </summary>
        </member>
        <member name="P:DiscordRPC.Assets.LargeImageID">
            <summary>
            The ID of the large image. This is only set after Update Presence and will automatically become null when <see cref="P:DiscordRPC.Assets.LargeImageKey"/> is changed.
            </summary>
        </member>
        <member name="P:DiscordRPC.Assets.IsLargeImageKeyExternal">
            <summary>
            Gets if the large square image is from an external link
            </summary>
        </member>
        <member name="P:DiscordRPC.Assets.SmallImageKey">
            <summary>
            Name of the uploaded image for the small profile artwork.
            <para>Max 256 characters.</para>
            </summary>
            <remarks>Allows URL to directly link to images.</remarks>
        </member>
        <member name="P:DiscordRPC.Assets.SmallImageText">
            <summary>
            The tooltip for the small circle image. For example, "LvL 6" or "Ultimate 85%".
            <para>Max 128 characters.</para>
            </summary>
        </member>
        <member name="P:DiscordRPC.Assets.SmallImageUrl">
            <summary>
            URL that is linked to when clicking on the small image in the activity card.
            <para>Max 256 characters.</para>
            </summary>
        </member>
        <member name="P:DiscordRPC.Assets.SmallImageID">
            <summary>
            The ID of the small image. This is only set after Update Presence and will automatically become null when <see cref="P:DiscordRPC.Assets.SmallImageKey"/> is changed.
            </summary>
        </member>
        <member name="P:DiscordRPC.Assets.IsSmallImageKeyExternal">
            <summary>
            Gets if the small profile artwork is from an external link
            </summary>
        </member>
        <member name="M:DiscordRPC.Assets.Merge(DiscordRPC.Assets)">
            <summary>
            Merges this asset with the other, taking into account for ID's instead of keys.
            </summary>
            <param name="other"></param>
        </member>
        <member name="T:DiscordRPC.Button">
            <summary>
            A Rich Presence button.
            </summary>
        </member>
        <member name="P:DiscordRPC.Button.Label">
            <summary>
            Text shown on the button
            <para>Max 31 bytes.</para>
            </summary>
        </member>
        <member name="P:DiscordRPC.Button.Url">
            <summary>
            The URL opened when clicking the button.
            <para>Max 512 characters.</para>
            </summary>
        </member>
        <member name="T:DiscordRPC.Party">
            <summary>
            Structure representing the part the player is in.
            </summary>
        </member>
        <member name="T:DiscordRPC.Party.PrivacySetting">
            <summary>
            Privacy of the party
            </summary>
        </member>
        <member name="F:DiscordRPC.Party.PrivacySetting.Private">
            <summary>
            The party is private, invites only.
            </summary>
        </member>
        <member name="F:DiscordRPC.Party.PrivacySetting.Public">
            <summary>
            The party is public, anyone can join.
            </summary>
        </member>
        <member name="P:DiscordRPC.Party.ID">
            <summary>
            A unique ID for the player's current party / lobby / group. If this is not supplied, they player will not be in a party and the rest of the information will not be sent. 
            <para>Max 128 Bytes</para>
            </summary>
        </member>
        <member name="P:DiscordRPC.Party.Size">
            <summary>
            The current size of the players party / lobby / group.
            </summary>
        </member>
        <member name="P:DiscordRPC.Party.Max">
            <summary>
            The maxium size of the party / lobby / group. This is required to be larger than <see cref="P:DiscordRPC.Party.Size"/>. If it is smaller than the current party size, it will automatically be set too <see cref="P:DiscordRPC.Party.Size"/> when the presence is sent.
            </summary>
        </member>
        <member name="P:DiscordRPC.Party.Privacy">
            <summary>
            The privacy of the party
            </summary>
        </member>
        <member name="T:DiscordRPC.BaseRichPresence">
            <summary>
            The base rich presence structure
            </summary>
        </member>
        <member name="P:DiscordRPC.BaseRichPresence.State">
            <summary>
            The user's current <see cref="P:DiscordRPC.BaseRichPresence.Party"/> status. For example, "Playing Solo" or "With Friends".
            <para>Max 128 characters</para>
            </summary>
        </member>
        <member name="F:DiscordRPC.BaseRichPresence._state">
            <summary>Inernal inner state string</summary>
        </member>
        <member name="P:DiscordRPC.BaseRichPresence.StateUrl">
            <summary>
            URL that is linked to when clicking on the details text in the activity card.
            <para>Max 256 characters</para>
            </summary>
        </member>
        <member name="F:DiscordRPC.BaseRichPresence._stateUrl">
            <summary>Inernal inner state URL string</summary>
        </member>
        <member name="P:DiscordRPC.BaseRichPresence.Details">
            <summary>
            What the user is currently doing. For example, "Competitive - Total Mayhem".
            <para>Max 128 characters</para>
            </summary>
        </member>
        <member name="F:DiscordRPC.BaseRichPresence._details">
            <summary>Inernal inner detail string</summary>
        </member>
        <member name="P:DiscordRPC.BaseRichPresence.DetailsUrl">
            <summary>
            URL that is linked to when clicking on the details text in the activity card.
            <para>Max 256 characters</para>
            </summary>
        </member>
        <member name="F:DiscordRPC.BaseRichPresence._detailsUrl">
            <summary>Inernal inner detail URL string</summary>
        </member>
        <member name="P:DiscordRPC.BaseRichPresence.Timestamps">
            <summary>
            The time elapsed / remaining time data.
            </summary>
        </member>
        <member name="P:DiscordRPC.BaseRichPresence.Assets">
            <summary>
            The names of the images to use and the tooltips to give those images.
            </summary>
        </member>
        <member name="P:DiscordRPC.BaseRichPresence.Party">
            <summary>
            The party the player is currently in. The <see cref="P:DiscordRPC.Party.ID"/> must be set for this to be included in the RichPresence update.
            </summary>
        </member>
        <member name="P:DiscordRPC.BaseRichPresence.Secrets">
            <summary>
            The secrets used for Join / Spectate. Secrets are obfuscated data of your choosing. They could be match ids, player ids, lobby ids, etc. Make this object null if you do not wish too / unable too implement the Join / Request feature.
            <para>To keep security on the up and up, Discord requires that you properly hash/encode/encrypt/put-a-padlock-on-and-swallow-the-key-but-wait-then-how-would-you-open-it your secrets.</para>
            <para>Visit the <see href="https://discordapp.com/developers/docs/rich-presence/how-to#secrets">Rich Presence How-To</see> for more information.</para>
            </summary>
        </member>
        <member name="P:DiscordRPC.BaseRichPresence.Type">
            <summary>
            The activity type
            </summary>
        </member>
        <member name="P:DiscordRPC.BaseRichPresence.StatusDisplay">
            <summary>
            The display type for the status
            </summary>
        </member>
        <member name="M:DiscordRPC.BaseRichPresence.HasTimestamps">
            <summary>
            Does the Rich Presence have valid timestamps?
            </summary>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.BaseRichPresence.HasAssets">
            <summary>
            Does the Rich Presence have valid assets?
            </summary>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.BaseRichPresence.HasParty">
            <summary>
            Does the Rich Presence have a valid party?
            </summary>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.BaseRichPresence.HasSecrets">
            <summary>
            Does the Rich Presence have valid secrets?
            </summary>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.BaseRichPresence.ValidateString(System.String,System.String@,System.Boolean,System.Int32,System.Text.Encoding)">
            <summary>
            Attempts to call <see cref="M:DiscordRPC.Helper.StringTools.GetNullOrString(System.String)"/> on the string and return the result, if its within a valid length.
            </summary>
            <param name="str">The string to check</param>
            <param name="result">The formatted string result</param>
            <param name="useBytes">True if you need to validate the string by byte length</param>
            <param name="length">The maximum number of bytes/characters the string can take up</param>
            <param name="encoding">The encoding to count the bytes with, optional</param>
            <returns>True if the string fits within the number of bytes</returns>
        </member>
        <member name="M:DiscordRPC.BaseRichPresence.ValidateUrl(System.String)">
            <summary>
            Validates URLs.
            </summary>
            <param name="url">The URL to check</param>
            <returns>True if the URL is valid</returns>
        </member>
        <member name="M:DiscordRPC.BaseRichPresence.op_Implicit(DiscordRPC.BaseRichPresence)~System.Boolean">
            <summary>
            Operator that converts a presence into a boolean for null checks.
            </summary>
            <param name="presence"></param>
        </member>
        <member name="M:DiscordRPC.BaseRichPresence.Matches(DiscordRPC.RichPresence)">
            <summary>
            Checks if the other rich presence differs from the current one
            </summary>
            <param name="other"></param>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.BaseRichPresence.ToRichPresence">
            <summary>
            Converts this BaseRichPresence to RichPresence
            </summary>
            <returns></returns>
        </member>
        <member name="T:DiscordRPC.RichPresence">
            <summary>
            The Rich Presence structure that will be sent and received by Discord. Use this class to build your presence and update it appropriately.
            </summary>
        </member>
        <member name="P:DiscordRPC.RichPresence.Buttons">
            <summary>
            The buttons to display in the presence. 
            <para>Max of 2</para>
            </summary>
        </member>
        <member name="M:DiscordRPC.RichPresence.HasButtons">
            <summary>
            Does the Rich Presence have any buttons?
            </summary>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.RichPresence.WithState(System.String)">
            <summary>
            Sets the state of the Rich Presence. See also <seealso cref="P:DiscordRPC.BaseRichPresence.State"/>.
            </summary>
            <param name="state">The user's current <see cref="T:DiscordRPC.Party"/> status.</param>
            <returns>The modified Rich Presence.</returns>
        </member>
        <member name="M:DiscordRPC.RichPresence.WithStateUrl(System.String)">
            <summary>
            Sets the state URL of the Rich Presence. See also <seealso cref="P:DiscordRPC.BaseRichPresence.StateUrl"/>.
            </summary>
            <param name="stateUrl">State URL when clicking on the state text.</param>
            <returns>The modified Rich Presence.</returns>
        </member>
        <member name="M:DiscordRPC.RichPresence.WithDetails(System.String)">
            <summary>
            Sets the details of the Rich Presence. See also <seealso cref="P:DiscordRPC.BaseRichPresence.Details"/>.
            </summary>
            <param name="details">What the user is currently doing.</param>
            <returns>The modified Rich Presence.</returns>
        </member>
        <member name="M:DiscordRPC.RichPresence.WithDetailsUrl(System.String)">
            <summary>
            Sets the details URL of the Rich Presence. See also <seealso cref="P:DiscordRPC.BaseRichPresence.DetailsUrl"/>.
            </summary>
            <param name="detailsUrl">Details URL when clicking on the details text.</param>
            <returns>The modified Rich Presence.</returns>
        </member>
        <member name="M:DiscordRPC.RichPresence.WithType(DiscordRPC.ActivityType)">
            <summary>
            Sets the type of the Rich Presence. See also <seealso cref="T:DiscordRPC.ActivityType"/>.
            </summary>
            <param name="type">The status type</param>
            <returns>The modified Rich Presence.</returns>
        </member>
        <member name="M:DiscordRPC.RichPresence.WithStatusDisplay(DiscordRPC.StatusDisplayType)">
            <summary>
            Sets the display type for the status. See also <seealso cref="T:DiscordRPC.StatusDisplayType"/>.
            </summary>
            <param name="statusDisplay"></param>
            <returns>The modified Rich Presence.</returns>
        </member>
        <member name="M:DiscordRPC.RichPresence.WithTimestamps(DiscordRPC.Timestamps)">
            <summary>
            Sets the timestamp of the Rich Presence. See also <seealso cref="T:DiscordRPC.Timestamps"/>.
            </summary>
            <param name="timestamps">The time elapsed / remaining time data.</param>
            <returns>The modified Rich Presence.</returns>
        </member>
        <member name="M:DiscordRPC.RichPresence.WithAssets(DiscordRPC.Assets)">
            <summary>
            Sets the assets of the Rich Presence. See also <seealso cref="T:DiscordRPC.Assets"/>.
            </summary>
            <param name="assets">The names of the images to use and the tooltips to give those images.</param>
            <returns>The modified Rich Presence.</returns>
        </member>
        <member name="M:DiscordRPC.RichPresence.WithParty(DiscordRPC.Party)">
            <summary>
            Sets the Rich Presence's party. See also <seealso cref="T:DiscordRPC.Party"/>.
            </summary>
            <param name="party">The party the player is currently in.</param>
            <returns>The modified Rich Presence.</returns>
        </member>
        <member name="M:DiscordRPC.RichPresence.WithSecrets(DiscordRPC.Secrets)">
            <summary>
            Sets the Rich Presence's secrets. See also <seealso cref="T:DiscordRPC.Secrets"/>.
            </summary>
            <param name="secrets">The secrets used for Join / Spectate.</param>
            <returns>The modified Rich Presence.</returns>
        </member>
        <member name="M:DiscordRPC.RichPresence.WithButtons(DiscordRPC.Button,DiscordRPC.Button)">
            <summary>
            Sets the Rich Presence's buttons.
            </summary>
            <param name="topButton">The top button to display</param>
            <param name="bottomButton">The optional bottom button to display</param>
            <returns>The modified Rich Presence.</returns>
        </member>
        <member name="M:DiscordRPC.RichPresence.Clone">
            <summary>
            Clones the presence into a new instance. Used for thread safe writing and reading. This function will ignore properties if they are in a invalid state.
            </summary>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.RichPresence.Merge(DiscordRPC.BaseRichPresence)">
            <summary>
            Merges the passed presence with this one, taking into account the image key to image id annoyance.
            </summary>
            <param name="presence"></param>
            <returns>self</returns>
        </member>
        <member name="M:DiscordRPC.RichPresence.op_Implicit(DiscordRPC.RichPresence)~System.Boolean">
            <summary>
            Operator that converts a presence into a boolean for null checks.
            </summary>
            <param name="presesnce"></param>
        </member>
        <member name="T:DiscordRPC.RichPresenceResponse">
            <summary>
            A rich presence that has been parsed from the pipe as a response.
            </summary>
        </member>
        <member name="P:DiscordRPC.RichPresenceResponse.ClientID">
            <summary>
            ID of the client
            </summary>
        </member>
        <member name="P:DiscordRPC.RichPresenceResponse.Name">
            <summary>
            Name of the bot
            </summary>
        </member>
        <member name="T:DiscordRPC.Secrets">
            <summary>
            The secrets used for Join / Spectate. Secrets are obfuscated data of your choosing. They could be match ids, player ids, lobby ids, etc.
            <para>To keep security on the up and up, Discord requires that you properly hash/encode/encrypt/put-a-padlock-on-and-swallow-the-key-but-wait-then-how-would-you-open-it your secrets.</para>
            <para>You should send discord data that someone else's game client would need to join or spectate their friend. If you can't or don't want to support those actions, you don't need to send secrets.</para>
            <para>Visit the <see href="https://discordapp.com/developers/docs/rich-presence/how-to#secrets">Rich Presence How-To</see> for more information.</para>
            </summary>
        </member>
        <member name="F:DiscordRPC.Secrets.MatchSecret">
            <summary>
            The unique match code to distinguish different games/lobbies. Use <see cref="M:DiscordRPC.Secrets.CreateSecret(System.Random)"/> to get an appropriately sized secret. 
            <para>This cannot be null and must be supplied for the  Join / Spectate feature to work.</para>
            <para>Max Length of 128 characters</para>
            </summary>
        </member>
        <member name="P:DiscordRPC.Secrets.JoinSecret">
            <summary>
            The secret data that will tell the client how to connect to the game to play. This could be a unique identifier for a fancy match maker or player id, lobby id, etc.
            <para>It is recommended to encrypt this information so its hard for people to replicate it. 
            Do <b>NOT</b> just use the IP address in this. That is a bad practice and can leave your players vulnerable!
            </para>
            <para>Max Length of 128 characters</para>
            </summary>
        </member>
        <member name="P:DiscordRPC.Secrets.SpectateSecret">
            <summary>
            The secret data that will tell the client how to connect to the game to spectate. This could be a unique identifier for a fancy match maker or player id, lobby id, etc.
            <para>It is recommended to encrypt this information so its hard for people to replicate it. 
            Do <b>NOT</b> just use the IP address in this. That is a bad practice and can leave your players vulnerable!
            </para>
            <para>Max Length of 128 characters</para>
            </summary>
        </member>
        <member name="P:DiscordRPC.Secrets.Encoding">
            <summary>
            The encoding the secret generator is using
            </summary>
        </member>
        <member name="P:DiscordRPC.Secrets.SecretLength">
            <summary>
            The length of a secret in bytes.
            </summary>
        </member>
        <member name="M:DiscordRPC.Secrets.CreateSecret(System.Random)">
            <summary>
            Creates a new secret. This is NOT a cryptographic function and should NOT be used for sensitive information. This is mainly provided as a way to generate quick IDs.
            </summary>
            <param name="random">The random to use</param>
            <returns>Returns a <see cref="P:DiscordRPC.Secrets.SecretLength"/> sized string with random characters from <see cref="P:DiscordRPC.Secrets.Encoding"/></returns>
        </member>
        <member name="M:DiscordRPC.Secrets.CreateFriendlySecret(System.Random)">
            <summary>
            Creates a secret word using more readable friendly characters. Useful for debugging purposes. This is not a cryptographic function and should NOT be used for sensitive information.
            </summary>
            <param name="random">The random used to generate the characters</param>
            <returns></returns>
        </member>
        <member name="T:DiscordRPC.StatusDisplayType">
            <summary>
            Rich Presence Display type
            </summary>
        </member>
        <member name="F:DiscordRPC.StatusDisplayType.Name">
            <summary>
            Displays the rich presence name "Listening to Spotify"
            </summary>
        </member>
        <member name="F:DiscordRPC.StatusDisplayType.State">
            <summary>
            Displays the rich presence state "Listening to Rick Astley"
            </summary>
        </member>
        <member name="F:DiscordRPC.StatusDisplayType.Details">
            <summary>
            Displays the rich presence details "Listening to Never Gonna Give You Up"
            </summary>
        </member>
        <member name="T:DiscordRPC.Timestamps">
            <summary>
            Structure representing the start and endtimes of a match.
            </summary>
        </member>
        <member name="P:DiscordRPC.Timestamps.Now">
            <summary>A new timestamp that starts from the current time.</summary>
        </member>
        <member name="M:DiscordRPC.Timestamps.FromTimeSpan(System.Double)">
            <summary>
            Creates a new timestamp starting at the current time and ending in the supplied timespan
            </summary>
            <param name="seconds">How long the Timestamp will last for in seconds.</param>
            <returns>Returns a new timestamp with given duration.</returns>
        </member>
        <member name="M:DiscordRPC.Timestamps.FromTimeSpan(System.TimeSpan)">
            <summary>
            Creates a new timestamp starting at current time and ending in the supplied timespan
            </summary>
            <param name="timespan">How long the Timestamp will last for.</param>
            <returns>Returns a new timestamp with given duration.</returns>
        </member>
        <member name="P:DiscordRPC.Timestamps.Start">
            <summary>
            The time that match started. When included (not-null), the time in the rich presence will be shown as "00:01 elapsed".
            </summary>
        </member>
        <member name="P:DiscordRPC.Timestamps.End">
            <summary>
            The time the match will end. When included (not-null), the time in the rich presence will be shown as "00:01 remaining". This will override the "elapsed" to "remaining".
            </summary>
        </member>
        <member name="M:DiscordRPC.Timestamps.#ctor">
            <summary>
            Creates a empty timestamp object
            </summary>
        </member>
        <member name="M:DiscordRPC.Timestamps.#ctor(System.DateTime)">
            <summary>
            Creates a timestamp with the set start time
            </summary>
            <param name="start"></param>
        </member>
        <member name="M:DiscordRPC.Timestamps.#ctor(System.DateTime,System.DateTime)">
            <summary>
            Creates a timestamp with a set duration
            </summary>
            <param name="start">The start time</param>
            <param name="end">The end time</param>
        </member>
        <member name="P:DiscordRPC.Timestamps.StartUnixMilliseconds">
            <summary>
            Converts between DateTime and Milliseconds to give the Unix Epoch Time for the <see cref="P:DiscordRPC.Timestamps.Start"/>.
            </summary>
        </member>
        <member name="P:DiscordRPC.Timestamps.EndUnixMilliseconds">
            <summary>
            Converts between DateTime and Milliseconds to give the Unix Epoch Time  for the <see cref="P:DiscordRPC.Timestamps.End"/>.
            <seealso cref="P:DiscordRPC.Timestamps.End"/>
            </summary>
        </member>
        <member name="M:DiscordRPC.Timestamps.FromUnixMilliseconds(System.UInt64)">
            <summary>
            Converts a Unix Epoch time into a <see cref="T:System.DateTime"/>.
            </summary>
            <param name="unixTime">The time in milliseconds since 1970 / 01 / 01</param>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.Timestamps.ToUnixMilliseconds(System.DateTime)">
            <summary>
            Converts a <see cref="T:System.DateTime"/> into a Unix Epoch time (in milliseconds).
            </summary>
            <param name="date">The datetime to convert</param>
            <returns></returns>
        </member>
        <member name="T:DiscordRPC.User">
            <summary>
            Object representing a Discord user. This is used for join requests.
            </summary>
        </member>
        <member name="T:DiscordRPC.User.AvatarFormat">
            <summary>
            Possible formats for avatars
            </summary>
        </member>
        <member name="F:DiscordRPC.User.AvatarFormat.PNG">
            <summary>
            Portable Network Graphics format (.png)
            <para>Losses format that supports transparent avatars. Most recommended for stationary formats with wide support from many libraries.</para>
            </summary>
        </member>
        <member name="F:DiscordRPC.User.AvatarFormat.JPEG">
            <summary>
            Joint Photographic Experts Group format (.jpeg)
            <para>The format most cameras use. Lossy and does not support transparent avatars.</para>
            </summary>
        </member>
        <member name="F:DiscordRPC.User.AvatarFormat.WebP">
            <summary>
            WebP format (.webp)
            <para>Picture only version of WebM. Pronounced "weeb p".</para>
            </summary>
        </member>
        <member name="F:DiscordRPC.User.AvatarFormat.GIF">
            <summary>
            Graphics Interchange Format (.gif)
            <para>Animated avatars that Discord Nitro users are able to use. If the user doesn't have an animated avatar, then it will just be a single frame gif.</para>
            </summary>
        </member>
        <member name="T:DiscordRPC.User.AvatarSize">
            <summary>
            Possible square sizes of avatars.
            </summary>
        </member>
        <member name="F:DiscordRPC.User.AvatarSize.x16">
            <summary> 16 x 16 pixels.</summary>
        </member>
        <member name="F:DiscordRPC.User.AvatarSize.x32">
            <summary> 32 x 32 pixels.</summary>
        </member>
        <member name="F:DiscordRPC.User.AvatarSize.x64">
            <summary> 64 x 64 pixels.</summary>
        </member>
        <member name="F:DiscordRPC.User.AvatarSize.x128">
            <summary> 128 x 128 pixels.</summary>
        </member>
        <member name="F:DiscordRPC.User.AvatarSize.x256">
            <summary> 256 x 256 pixels.</summary>
        </member>
        <member name="F:DiscordRPC.User.AvatarSize.x512">
            <summary> 512 x 512 pixels.</summary>
        </member>
        <member name="F:DiscordRPC.User.AvatarSize.x1024">
            <summary> 1024 x 1024 pixels.</summary>
        </member>
        <member name="F:DiscordRPC.User.AvatarSize.x2048">
            <summary> 2048 x 2048 pixels.</summary>
        </member>
        <member name="T:DiscordRPC.User.AvatarDecorationData">
            <summary>
            Data for the avatar decoration which can be layered on top of the avatar.
            </summary>
        </member>
        <member name="P:DiscordRPC.User.AvatarDecorationData.Asset">
            <summary>
            The hash of the asset used for the decoration.
            </summary>
        </member>
        <member name="P:DiscordRPC.User.AvatarDecorationData.SKU">
            <summary>
            The SKU of the decoration.
            </summary>
        </member>
        <member name="P:DiscordRPC.User.ID">
            <summary>
            The snowflake ID of the user. 
            </summary>
        </member>
        <member name="P:DiscordRPC.User.Username">
            <summary>
            The username of the player.
            </summary>
        </member>
        <member name="P:DiscordRPC.User.Discriminator">
            <summary>
            The discriminator of the user.
            </summary>
            <remarks>If the user has migrated to unique a <see cref="P:DiscordRPC.User.Username"/>, the discriminator will always be 0.</remarks>
        </member>
        <member name="P:DiscordRPC.User.DisplayName">
            <summary>
            The display name of the user
            </summary>
            <remarks>This will be empty if the user has not set a global display name.</remarks>
        </member>
        <member name="P:DiscordRPC.User.Avatar">
            <summary>
            The hash of the user's avatar.
            To get a URL for the avatar, use the <see cref="M:DiscordRPC.User.GetAvatarURL(DiscordRPC.User.AvatarFormat,DiscordRPC.User.AvatarSize)"/>. 
            </summary>
            <remarks>
            If the user has a default Discord avatar, this value will be <c>null</c>. <see cref="M:DiscordRPC.User.GetAvatarURL(DiscordRPC.User.AvatarFormat,DiscordRPC.User.AvatarSize)"/> will still return the correct default avatar.
            </remarks>
        </member>
        <member name="P:DiscordRPC.User.IsAvatarAnimated">
            <summary>
            The avatar is animated
            </summary>
        </member>
        <member name="P:DiscordRPC.User.AvatarDecoration">
            <summary>
            The SKU and hash of the users avatar decoration. 
            To get a URL for the decoration, use the <see cref="M:DiscordRPC.User.GetAvatarDecorationURL"/>.
            </summary>
        </member>
        <member name="P:DiscordRPC.User.Bot">
            <summary>
            Whether the user belongs to an OAuth2 application.
            </summary>
        </member>
        <member name="P:DiscordRPC.User.Flags">
            <summary>
            The flags on a users account, often represented as a badge.
            </summary>
        </member>
        <member name="T:DiscordRPC.User.Flag">
            <summary>
            A flag on the user account
            </summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.None">
            <summary>No flag</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.Employee">
            <summary>Discord Employee</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.Partner">
            <summary>Partnered Server Owner</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.HypeSquad">
            <summary>HypeSquad Events Member</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.BugHunter">
            <summary>Bug Hunter Level 1</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.HouseBravery">
            <summary>House Bravery Member</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.HouseBrilliance">
            <summary>House Brilliance Member</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.HouseBalance">
            <summary>House Balance Member</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.EarlySupporter">
            <summary>Early Nitro Supporter</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.TeamUser">
            <summary>User is a team</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.BugHunterLevel2">
            <summary>Bug Hunter Level 2</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.VerifiedBot">
            <summary>Verified Bot</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.VerifiedDeveloper">
            <summary>Early Verified Bot Developer</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.CertifiedModerator">
            <summary>Moderator Programs Alumni</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.BotHttpInteractions">
            <summary>Bot uses only HTTP interactions and is shown in the online member list</summary>
        </member>
        <member name="F:DiscordRPC.User.Flag.ActiveDeveloper">
            <summary>User is an Active Developer</summary>
        </member>
        <member name="P:DiscordRPC.User.Premium">
            <summary>
            The premium type of the user.
            </summary>
        </member>
        <member name="T:DiscordRPC.User.PremiumType">
            <summary>
            Type of premium
            </summary>
        </member>
        <member name="F:DiscordRPC.User.PremiumType.None">
            <summary>No subscription</summary>
        </member>
        <member name="F:DiscordRPC.User.PremiumType.NitroClassic">
            <summary>Nitro Classic. The precursor to the <see cref="F:DiscordRPC.User.PremiumType.NitroBasic"/></summary>
        </member>
        <member name="F:DiscordRPC.User.PremiumType.Nitro">
            <summary>Nitro. Access to all premium features</summary>
        </member>
        <member name="F:DiscordRPC.User.PremiumType.NitroBasic">
            <summary>Nitro Basic. Access to mostpremium features</summary>
        </member>
        <member name="P:DiscordRPC.User.CdnEndpoint">
            <summary>
            The endpoint for the CDN. Normally cdn.discordapp.com.
            </summary>
        </member>
        <member name="M:DiscordRPC.User.#ctor">
            <summary>
            Creates a new User instance.
            </summary>
        </member>
        <member name="M:DiscordRPC.User.SetConfiguration(DiscordRPC.Configuration)">
            <summary>
            Updates the URL paths to the appropriate configuration
            </summary>
            <param name="configuration">The configuration received by the OnReady event.</param>
        </member>
        <member name="M:DiscordRPC.User.GetAvatarURL">
            <summary>
            Gets a URL to the user's avatar PNG.
            <para>If the user does not have an avatar, a URL to a default avatar is returned.</para>
            </summary>
            <remarks>
            The file returned will be <c>128x128px</c>.
            </remarks>
            <returns>URL to the discord CDN for the particular avatar</returns>
        </member>
        <member name="M:DiscordRPC.User.GetAvatarURL(DiscordRPC.User.AvatarFormat)">
            <summary>
            Gets a URL to the user's avatar with the specified format.
            <para>If the user does not have an avatar, a URL to a default avatar is returned.</para>
            </summary>
            <remarks>
            <para>The file returned will be <c>128x128px</c>.</para>
            <para>The default avatar only supports the <see cref="F:DiscordRPC.User.AvatarFormat.PNG"/> format.</para>
            </remarks>
            <param name="format">The format of the target avatar</param>
            <returns>URL to the discord CDN for the particular avatar</returns>
            <exception cref="T:System.BadImageFormatException">The user has a default avatar but a format other than PNG is requested.</exception>
        </member>
        <member name="M:DiscordRPC.User.GetAvatarURL(DiscordRPC.User.AvatarFormat,DiscordRPC.User.AvatarSize)">
            <summary>
            Gets a URL to the user's avatar with the specified format and size.
            <para>If the user does not have an avatar, a URL to a default avatar is returned.</para>
            </summary>
            <remarks>
            The default avatar only supports the <see cref="F:DiscordRPC.User.AvatarFormat.PNG"/> format.
            </remarks>
            <param name="format">The format of the target avatar</param>
            <param name="size">The optional size of the avatar you wish for.</param>
            <returns>URL to the discord CDN for the particular avatar</returns>
            <exception cref="T:System.BadImageFormatException">The user has a default avatar but a format other than PNG is requested.</exception>
        </member>
        <member name="M:DiscordRPC.User.GetAvatarDecorationURL">
            <summary>
            Gets a URL to the user's avatar decoration.
            </summary>
            <remarks>The Image will be a Animated PNG.</remarks>
            <returns>URL to the discord CDN for the current avatar decoration, otherwise <c>null</c>.</returns>
        </member>
        <member name="M:DiscordRPC.User.GetAvatarDecorationURL(DiscordRPC.User.AvatarFormat)">
            <summary>		
            Gets a URL to the user's avatar decoration.
            </summary>
            <remarks>
            The avatar formats do not behave like User Avatars:
            <list type="bullet">
            <item><see cref="F:DiscordRPC.User.AvatarFormat.PNG"/> are Animated PNG</item>
            <item><see cref="F:DiscordRPC.User.AvatarFormat.GIF"/> will respond with <c>415 Unsupported Media Type</c></item>
            <item><see cref="F:DiscordRPC.User.AvatarFormat.WebP"/> are not animated</item>
            <item><see cref="F:DiscordRPC.User.AvatarFormat.JPEG"/> do not have transparency</item>
            </list>
            
            Additionally, size is not support and makes no difference to the resulting image.
            </remarks>
            <param name="format">The format of the decoration</param>
            <returns>URL to the discord CDN for the current avatar decoration, otherwise <c>null</c>.</returns>
        </member>
        <member name="M:DiscordRPC.User.GetAvatarExtension(DiscordRPC.User.AvatarFormat)">
            <summary>
            Returns the file extension of the specified format.
            </summary>
            <param name="format">The format to get the extention off</param>
            <returns>Returns a period prefixed file extension.</returns>
        </member>
        <member name="M:DiscordRPC.User.ToString">
            <summary>
            Formats the user into a displayable format. If the user has a <see cref="P:DiscordRPC.User.DisplayName"/>, then this will be used.
            <para>If the user still has a discriminator, then this will return the form of `Username#Discriminator`.</para>
            </summary>
            <returns>String of the user that can be used for display.</returns>
        </member>
        <member name="T:DiscordRPC.Events.OnReadyEvent">
            <summary>
            Called when the Discord Client is ready to send and receive messages.
            </summary>
            <param name="sender">The Discord client handler that sent this event</param>
            <param name="args">The arguments supplied with the event</param>
        </member>
        <member name="T:DiscordRPC.Events.OnCloseEvent">
            <summary>
            Called when connection to the Discord Client is lost. The connection will remain close and unready to accept messages until the Ready event is called again.
            </summary>
            <param name="sender">The Discord client handler that sent this event</param>
            <param name="args">The arguments supplied with the event</param>
        </member>
        <member name="T:DiscordRPC.Events.OnErrorEvent">
            <summary>
            Called when a error has occured during the transmission of a message. For example, if a bad Rich Presence payload is sent, this event will be called explaining what went wrong.
            </summary>
            <param name="sender">The Discord client handler that sent this event</param>
            <param name="args">The arguments supplied with the event</param>
        </member>
        <member name="T:DiscordRPC.Events.OnPresenceUpdateEvent">
            <summary>
            Called when the Discord Client has updated the presence.
            </summary>
            <param name="sender">The Discord client handler that sent this event</param>
            <param name="args">The arguments supplied with the event</param>
        </member>
        <member name="T:DiscordRPC.Events.OnSubscribeEvent">
            <summary>
            Called when the Discord Client has subscribed to an event.
            </summary>
            <param name="sender">The Discord client handler that sent this event</param>
            <param name="args">The arguments supplied with the event</param>
        </member>
        <member name="T:DiscordRPC.Events.OnUnsubscribeEvent">
            <summary>
            Called when the Discord Client has unsubscribed from an event.
            </summary>
            <param name="sender">The Discord client handler that sent this event</param>
            <param name="args">The arguments supplied with the event</param>
        </member>
        <member name="T:DiscordRPC.Events.OnJoinEvent">
            <summary>
            Called when the Discord Client wishes for this process to join a game.
            </summary>
            <param name="sender">The Discord client handler that sent this event</param>
            <param name="args">The arguments supplied with the event</param>
        </member>
        <member name="T:DiscordRPC.Events.OnSpectateEvent">
            <summary>
            Called when the Discord Client wishes for this process to spectate a game.
            </summary>
            <param name="sender">The Discord client handler that sent this event</param>
            <param name="args">The arguments supplied with the event</param>
        </member>
        <member name="T:DiscordRPC.Events.OnJoinRequestedEvent">
            <summary>
            Called when another discord user requests permission to join this game.
            </summary>
            <param name="sender">The Discord client handler that sent this event</param>
            <param name="args">The arguments supplied with the event</param>
        </member>
        <member name="T:DiscordRPC.Events.OnConnectionEstablishedEvent">
            <summary>
            The connection to the discord client was succesfull. This is called before <see cref="T:DiscordRPC.Events.OnReadyEvent"/>.
            </summary>
            <param name="sender">The Discord client handler that sent this event</param>
            <param name="args">The arguments supplied with the event</param>
        </member>
        <member name="T:DiscordRPC.Events.OnConnectionFailedEvent">
            <summary>
            Failed to establish any connection with discord. Discord is potentially not running?
            </summary>
            <param name="sender">The Discord client handler that sent this event</param>
            <param name="args">The arguments supplied with the event</param>
        </member>
        <member name="T:DiscordRPC.Events.OnRpcMessageEvent">
            <summary>
            A RPC Message is received.
            </summary>
            <param name="sender">The handler that sent this event</param>
            <param name="msg">The raw message from the RPC</param>
        </member>
        <member name="T:DiscordRPC.EventType">
            <summary>
            The type of event receieved by the RPC. A flag type that can be combined.
            </summary>
        </member>
        <member name="F:DiscordRPC.EventType.None">
            <summary>
            No event
            </summary>
        </member>
        <member name="F:DiscordRPC.EventType.Spectate">
            <summary>
            Called when the Discord Client wishes to enter a game to spectate
            </summary>
        </member>
        <member name="F:DiscordRPC.EventType.Join">
            <summary>
            Called when the Discord Client wishes to enter a game to play.
            </summary>
        </member>
        <member name="F:DiscordRPC.EventType.JoinRequest">
            <summary>
            Called when another Discord Client has requested permission to join this game.
            </summary>
        </member>
        <member name="T:DiscordRPC.Exceptions.BadPresenceException">
            <summary>
            A BadPresenceException is thrown when invalid, incompatible or conflicting properties and is unable to be sent.
            </summary>
        </member>
        <member name="T:DiscordRPC.Exceptions.InvalidConfigurationException">
            <summary>
            A InvalidConfigurationException is thrown when trying to perform a action that conflicts with the current configuration.
            </summary>
        </member>
        <member name="T:DiscordRPC.Exceptions.InvalidPipeException">
            <summary>
            The exception that is thrown when a error occurs while communicating with a pipe or when a connection attempt fails.
            </summary>
        </member>
        <member name="T:DiscordRPC.Exceptions.StringOutOfRangeException">
            <summary>
            A StringOutOfRangeException is thrown when the length of a string exceeds the allowed limit.
            </summary>
        </member>
        <member name="P:DiscordRPC.Exceptions.StringOutOfRangeException.MaximumLength">
            <summary>
            Maximum length the string is allowed to be.
            </summary>
        </member>
        <member name="P:DiscordRPC.Exceptions.StringOutOfRangeException.MinimumLength">
            <summary>
            Minimum length the string is allowed to be.
            </summary>
        </member>
        <member name="M:DiscordRPC.Exceptions.StringOutOfRangeException.#ctor(System.String,System.Int32,System.Int32)">
            <summary>
            Creates a new string out of range exception with a range of min to max and a custom message
            </summary>
            <param name="message">The custom message</param>
            <param name="min">Minimum length the string can be</param>
            <param name="max">Maximum length the string can be</param>
        </member>
        <member name="M:DiscordRPC.Exceptions.StringOutOfRangeException.#ctor(System.Int32,System.Int32)">
            <summary>
            Creates a new sting out of range exception with a range of min to max
            </summary>
            <param name="minumum"></param>
            <param name="max"></param>
        </member>
        <member name="M:DiscordRPC.Exceptions.StringOutOfRangeException.#ctor(System.Int32)">
            <summary>
            Creates a new sting out of range exception with a range of 0 to max
            </summary>
            <param name="max"></param>
        </member>
        <member name="T:DiscordRPC.Exceptions.UninitializedException">
            <summary>
            Thrown when an action is performed on a client that has not yet been initialized
            </summary>
        </member>
        <member name="M:DiscordRPC.Exceptions.UninitializedException.#ctor(System.String)">
            <summary>
            Creates a new unintialized exception
            </summary>
            <param name="message"></param>
        </member>
        <member name="M:DiscordRPC.Exceptions.UninitializedException.#ctor">
            <summary>
            Creates a new uninitialized exception with default message.
            </summary>
        </member>
        <member name="P:DiscordRPC.Helper.BackoffDelay.Maximum">
            <summary>
            The maximum time the backoff can reach
            </summary>
        </member>
        <member name="P:DiscordRPC.Helper.BackoffDelay.Minimum">
            <summary>
            The minimum time the backoff can start at
            </summary>
        </member>
        <member name="P:DiscordRPC.Helper.BackoffDelay.Current">
            <summary>
            The current time of the backoff
            </summary>
        </member>
        <member name="P:DiscordRPC.Helper.BackoffDelay.Fails">
            <summary>
            The current number of failures
            </summary>
        </member>
        <member name="P:DiscordRPC.Helper.BackoffDelay.Random">
            <summary>
            The random generator
            </summary>
        </member>
        <member name="M:DiscordRPC.Helper.BackoffDelay.Reset">
            <summary>
            Resets the backoff
            </summary>
        </member>
        <member name="T:DiscordRPC.Helper.StringTools">
            <summary>
            Collectin of helpful string extensions
            </summary>
        </member>
        <member name="M:DiscordRPC.Helper.StringTools.GetNullOrString(System.String)">
            <summary>
            Will return null if the string is whitespace, otherwise it will return the string. 
            </summary>
            <param name="str">The string to check</param>
            <returns>Null if the string is empty, otherwise the string</returns>
        </member>
        <member name="M:DiscordRPC.Helper.StringTools.WithinLength(System.String,System.Int32)">
            <summary>
            Does the string fit within the given amount of bytes? Uses UTF8 encoding.
            </summary>
            <param name="str">The string to check</param>
            <param name="bytes">The maximum number of bytes the string can take up</param>
            <returns>True if the string fits within the number of bytes</returns>
        </member>
        <member name="M:DiscordRPC.Helper.StringTools.WithinLength(System.String,System.Int32,System.Text.Encoding)">
            <summary>
            Does the string fit within the given amount of bytes?
            </summary>
            <param name="str">The string to check</param>
            <param name="bytes">The maximum number of bytes the string can take up</param>
            <param name="encoding">The encoding to count the bytes with</param>
            <returns>True if the string fits within the number of bytes</returns>
        </member>
        <member name="M:DiscordRPC.Helper.StringTools.ToCamelCase(System.String)">
            <summary>
            Converts the string into UpperCamelCase (Pascal Case).
            </summary>
            <param name="str">The string to convert</param>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.Helper.StringTools.ToSnakeCase(System.String)">
            <summary>
            Converts the string into UPPER_SNAKE_CASE
            </summary>
            <param name="str">The string to convert</param>
            <returns></returns>
        </member>
        <member name="P:DiscordRPC.IO.Handshake.Version">
            <summary>
            Version of the IPC API we are using
            </summary>
        </member>
        <member name="P:DiscordRPC.IO.Handshake.ClientID">
            <summary>
            The ID of the app.
            </summary>
        </member>
        <member name="T:DiscordRPC.IO.INamedPipeClient">
            <summary>
            Pipe Client used to communicate with Discord.
            </summary>
        </member>
        <member name="P:DiscordRPC.IO.INamedPipeClient.Logger">
            <summary>
            The logger for the Pipe client to use
            </summary>
        </member>
        <member name="P:DiscordRPC.IO.INamedPipeClient.IsConnected">
            <summary>
            Is the pipe client currently connected?
            </summary>
        </member>
        <member name="P:DiscordRPC.IO.INamedPipeClient.ConnectedPipe">
            <summary>
            The pipe the client is currently connected too
            </summary>
        </member>
        <member name="M:DiscordRPC.IO.INamedPipeClient.Connect(System.Int32)">
            <summary>
            Attempts to connect to the pipe. If 0-9 is passed to pipe, it should try to only connect to the specified pipe. If -1 is passed, the pipe will find the first available pipe.
            </summary>
            <param name="pipe">If -1 is passed, the pipe will find the first available pipe, otherwise it connects to the pipe that was supplied</param>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.IO.INamedPipeClient.ReadFrame(DiscordRPC.IO.PipeFrame@)">
            <summary>
            Reads a frame if there is one available. Returns false if there is none. This should be non blocking (aka use a Peek first).
            </summary>
            <param name="frame">The frame that has been read. Will be <code>default(PipeFrame)</code> if it fails to read</param>
            <returns>Returns true if a frame has been read, otherwise false.</returns>
        </member>
        <member name="M:DiscordRPC.IO.INamedPipeClient.WriteFrame(DiscordRPC.IO.PipeFrame)">
            <summary>
            Writes the frame to the pipe. Returns false if any errors occur.
            </summary>
            <param name="frame">The frame to be written</param>
        </member>
        <member name="M:DiscordRPC.IO.INamedPipeClient.Close">
            <summary>
            Closes the connection
            </summary>
        </member>
        <member name="T:DiscordRPC.IO.ManagedNamedPipeClient">
            <summary>
            A named pipe client using the .NET framework <see cref="T:System.IO.Pipes.NamedPipeClientStream"/>
            </summary>
        </member>
        <member name="P:DiscordRPC.IO.ManagedNamedPipeClient.Logger">
            <summary>
            The logger for the Pipe client to use
            </summary>
        </member>
        <member name="P:DiscordRPC.IO.ManagedNamedPipeClient.IsConnected">
            <summary>
            Checks if the client is connected
            </summary>
        </member>
        <member name="P:DiscordRPC.IO.ManagedNamedPipeClient.ConnectedPipe">
            <summary>
            The pipe we are currently connected too.
            </summary>
        </member>
        <member name="M:DiscordRPC.IO.ManagedNamedPipeClient.#ctor">
            <summary>
            Creates a new instance of a Managed NamedPipe client. Doesn't connect to anything yet, just setups the values.
            </summary>
        </member>
        <member name="M:DiscordRPC.IO.ManagedNamedPipeClient.Connect(System.Int32)">
            <summary>
            Connects to the pipe
            </summary>
            <param name="pipe"></param>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.IO.ManagedNamedPipeClient.AttemptConnection(System.String)">
            <summary>
            Attempts a new connection
            </summary>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.IO.ManagedNamedPipeClient.BeginReadStream">
            <summary>
            Starts a read. Can be executed in another thread.
            </summary>
        </member>
        <member name="M:DiscordRPC.IO.ManagedNamedPipeClient.EndReadStream(System.IAsyncResult)">
            <summary>
            Ends a read. Can be executed in another thread.
            </summary>
            <param name="callback"></param>
        </member>
        <member name="M:DiscordRPC.IO.ManagedNamedPipeClient.ReadFrame(DiscordRPC.IO.PipeFrame@)">
            <summary>
            Reads a frame, returning false if none are available
            </summary>
            <param name="frame"></param>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.IO.ManagedNamedPipeClient.WriteFrame(DiscordRPC.IO.PipeFrame)">
            <summary>
            Writes a frame to the pipe
            </summary>
            <param name="frame"></param>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.IO.ManagedNamedPipeClient.Close">
            <summary>
            Closes the pipe
            </summary>
        </member>
        <member name="M:DiscordRPC.IO.ManagedNamedPipeClient.Dispose">
            <summary>
            Disposes of the stream
            </summary>
        </member>
        <member name="T:DiscordRPC.IO.Opcode">
            <summary>
            The operation code that the <see cref="T:DiscordRPC.IO.PipeFrame"/> was sent under. This defines the type of frame and the data to expect.
            </summary>
        </member>
        <member name="F:DiscordRPC.IO.Opcode.Handshake">
            <summary>
            Initial handshake frame
            </summary>
        </member>
        <member name="F:DiscordRPC.IO.Opcode.Frame">
            <summary>
            Generic message frame
            </summary>
        </member>
        <member name="F:DiscordRPC.IO.Opcode.Close">
            <summary>
            Discord has closed the connection
            </summary>
        </member>
        <member name="F:DiscordRPC.IO.Opcode.Ping">
            <summary>
            Ping frame (not used?)
            </summary>
        </member>
        <member name="F:DiscordRPC.IO.Opcode.Pong">
            <summary>
            Pong frame (not used?)
            </summary>
        </member>
        <member name="T:DiscordRPC.IO.PipeFrame">
            <summary>
            A frame received and sent to the Discord client for RPC communications.
            </summary>
        </member>
        <member name="F:DiscordRPC.IO.PipeFrame.MAX_SIZE">
            <summary>
            The maxium size of a pipe frame (16kb).
            </summary>
        </member>
        <member name="P:DiscordRPC.IO.PipeFrame.Opcode">
            <summary>
            The opcode of the frame
            </summary>
        </member>
        <member name="P:DiscordRPC.IO.PipeFrame.Length">
            <summary>
            The length of the frame data
            </summary>
        </member>
        <member name="P:DiscordRPC.IO.PipeFrame.Data">
            <summary>
            The data in the frame
            </summary>
        </member>
        <member name="P:DiscordRPC.IO.PipeFrame.Message">
            <summary>
            The data represented as a string.
            </summary>
        </member>
        <member name="M:DiscordRPC.IO.PipeFrame.#ctor(DiscordRPC.IO.Opcode,System.Object)">
            <summary>
            Creates a new pipe frame instance
            </summary>
            <param name="opcode">The opcode of the frame</param>
            <param name="data">The data of the frame that will be serialized as JSON</param>
        </member>
        <member name="P:DiscordRPC.IO.PipeFrame.MessageEncoding">
            <summary>
            Gets the encoding used for the pipe frames
            </summary>
        </member>
        <member name="M:DiscordRPC.IO.PipeFrame.SetMessage(System.String)">
            <summary>
            Sets the data based of a string
            </summary>
            <param name="str"></param>
        </member>
        <member name="M:DiscordRPC.IO.PipeFrame.GetMessage">
            <summary>
            Gets a string based of the data
            </summary>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.IO.PipeFrame.SetObject(System.Object)">
            <summary>
            Serializes the object into json string then encodes it into <see cref="P:DiscordRPC.IO.PipeFrame.Data"/>.
            </summary>
            <param name="obj"></param>
        </member>
        <member name="M:DiscordRPC.IO.PipeFrame.SetObject(DiscordRPC.IO.Opcode,System.Object)">
            <summary>
            Sets the opcodes and serializes the object into a json string.
            </summary>
            <param name="opcode"></param>
            <param name="obj"></param>
        </member>
        <member name="M:DiscordRPC.IO.PipeFrame.GetObject``1">
            <summary>
            Deserializes the data into the supplied type using JSON.
            </summary>
            <typeparam name="T">The type to deserialize into</typeparam>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.IO.PipeFrame.ReadStream(System.IO.Stream)">
            <summary>
            Attempts to read the contents of the frame from the stream
            </summary>
            <param name="stream"></param>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.IO.PipeFrame.Min(System.Int32,System.UInt32)">
            <summary>
            Returns minimum value between a int and a unsigned int
            </summary>
        </member>
        <member name="M:DiscordRPC.IO.PipeFrame.TryReadUInt32(System.IO.Stream,System.UInt32@)">
            <summary>
            Attempts to read a UInt32
            </summary>
            <param name="stream"></param>
            <param name="value"></param>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.IO.PipeFrame.WriteStream(System.IO.Stream)">
            <summary>
            Writes the frame into the target frame as one big byte block.
            </summary>
            <param name="stream"></param>
        </member>
        <member name="M:DiscordRPC.IO.PipeFrame.Equals(DiscordRPC.IO.PipeFrame)">
            <summary>
            Compares if the frame equals the other frame.
            </summary>
            <param name="other"></param>
            <returns></returns>
        </member>
        <member name="T:DiscordRPC.IO.PipeLocation">
            <summary>
            Provides the location of the Discord IPC pipes for the current operating system.
            </summary>
        </member>
        <member name="M:DiscordRPC.IO.PipeLocation.GetPipes(System.Int32)">
            <summary>
            Generates a sequence of pipe names that Discord can use for the IPC for the current operating system.
            </summary>
            <param name="startPipe">The starting index for the pipe names.</param>
            <returns>An enumerable collection of pipe names.</returns>
            <remarks>
            The names are ordered and will check multiple locations for a suitable pipe. For Unix systems, multiple TEMP directories are checked and multiple package managers are considered.
            This means that there is not a 1 to 1 mapping of pipe names to indices, as there are many locations for a single pipe index.
            </remarks>	
        </member>
        <member name="T:DiscordRPC.Logging.ConsoleLogger">
            <summary>
            Logs the outputs to the console using <see cref="M:System.Console.WriteLine"/>
            </summary>
        </member>
        <member name="P:DiscordRPC.Logging.ConsoleLogger.Level">
            <summary>
            The level of logging to apply to this logger.
            </summary>
        </member>
        <member name="P:DiscordRPC.Logging.ConsoleLogger.Coloured">
            <summary>
            Should the output be coloured?
            </summary>
        </member>
        <member name="P:DiscordRPC.Logging.ConsoleLogger.Colored">
            <summary>
            A alias too <see cref="P:DiscordRPC.Logging.ConsoleLogger.Coloured"/>
            </summary>
        </member>
        <member name="M:DiscordRPC.Logging.ConsoleLogger.#ctor">
            <summary>
            Creates a new instance of a Console Logger.
            </summary>
        </member>
        <member name="M:DiscordRPC.Logging.ConsoleLogger.#ctor(DiscordRPC.Logging.LogLevel)">
            <summary>
            Creates a new instance of a Console Logger
            </summary>
            <param name="level">The log level</param>
        </member>
        <member name="M:DiscordRPC.Logging.ConsoleLogger.#ctor(DiscordRPC.Logging.LogLevel,System.Boolean)">
            <summary>
            Creates a new instance of a Console Logger with a set log level
            </summary>
            <param name="level">The log level</param>
            <param name="coloured">Should the logs be in colour?</param>
        </member>
        <member name="M:DiscordRPC.Logging.ConsoleLogger.Trace(System.String,System.Object[])">
            <summary>
            Informative log messages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="M:DiscordRPC.Logging.ConsoleLogger.Info(System.String,System.Object[])">
            <summary>
            Informative log messages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="M:DiscordRPC.Logging.ConsoleLogger.Warning(System.String,System.Object[])">
            <summary>
            Warning log messages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="M:DiscordRPC.Logging.ConsoleLogger.Error(System.String,System.Object[])">
            <summary>
            Error log messsages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="T:DiscordRPC.Logging.FileLogger">
            <summary>
            Logs the outputs to a file
            </summary>
        </member>
        <member name="P:DiscordRPC.Logging.FileLogger.Level">
            <summary>
            The level of logging to apply to this logger.
            </summary>
        </member>
        <member name="P:DiscordRPC.Logging.FileLogger.File">
            <summary>
            Should the output be coloured?
            </summary>
        </member>
        <member name="M:DiscordRPC.Logging.FileLogger.#ctor(System.String)">
            <summary>
            Creates a new instance of the file logger
            </summary>
            <param name="path">The path of the log file.</param>
        </member>
        <member name="M:DiscordRPC.Logging.FileLogger.#ctor(System.String,DiscordRPC.Logging.LogLevel)">
            <summary>
            Creates a new instance of the file logger
            </summary>
            <param name="path">The path of the log file.</param>
            <param name="level">The level to assign to the logger.</param>
        </member>
        <member name="M:DiscordRPC.Logging.FileLogger.Trace(System.String,System.Object[])">
            <summary>
            Informative log messages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="M:DiscordRPC.Logging.FileLogger.Info(System.String,System.Object[])">
            <summary>
            Informative log messages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="M:DiscordRPC.Logging.FileLogger.Warning(System.String,System.Object[])">
            <summary>
            Warning log messages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="M:DiscordRPC.Logging.FileLogger.Error(System.String,System.Object[])">
            <summary>
            Error log messsages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="T:DiscordRPC.Logging.ILogger">
            <summary>
            Logging interface to log the internal states of the pipe. Logs are sent in a NON thread safe way. They can come from multiple threads and it is upto the ILogger to account for it.
            </summary>
        </member>
        <member name="P:DiscordRPC.Logging.ILogger.Level">
            <summary>
            The level of logging to apply to this logger.
            </summary>
        </member>
        <member name="M:DiscordRPC.Logging.ILogger.Trace(System.String,System.Object[])">
            <summary>
            Debug trace messeages used for debugging internal elements.
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="M:DiscordRPC.Logging.ILogger.Info(System.String,System.Object[])">
            <summary>
            Informative log messages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="M:DiscordRPC.Logging.ILogger.Warning(System.String,System.Object[])">
            <summary>
            Warning log messages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="M:DiscordRPC.Logging.ILogger.Error(System.String,System.Object[])">
            <summary>
            Error log messsages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="T:DiscordRPC.Logging.LogLevel">
            <summary>
            Level of logging to use.
            </summary>
        </member>
        <member name="F:DiscordRPC.Logging.LogLevel.Trace">
            <summary>
            Trace, Info, Warning and Errors are logged
            </summary>
        </member>
        <member name="F:DiscordRPC.Logging.LogLevel.Info">
            <summary>
            Info, Warning and Errors are logged
            </summary>
        </member>
        <member name="F:DiscordRPC.Logging.LogLevel.Warning">
            <summary>
            Warning and Errors are logged
            </summary>
        </member>
        <member name="F:DiscordRPC.Logging.LogLevel.Error">
            <summary>
            Only Errors are logged
            </summary>
        </member>
        <member name="F:DiscordRPC.Logging.LogLevel.None">
            <summary>
            Nothing is logged
            </summary>
        </member>
        <member name="T:DiscordRPC.Logging.NullLogger">
            <summary>
            Ignores all log events
            </summary>
        </member>
        <member name="P:DiscordRPC.Logging.NullLogger.Level">
            <summary>
            The level of logging to apply to this logger.
            </summary>
        </member>
        <member name="M:DiscordRPC.Logging.NullLogger.Trace(System.String,System.Object[])">
            <summary>
            Informative log messages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="M:DiscordRPC.Logging.NullLogger.Info(System.String,System.Object[])">
            <summary>
            Informative log messages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="M:DiscordRPC.Logging.NullLogger.Warning(System.String,System.Object[])">
            <summary>
            Warning log messages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="M:DiscordRPC.Logging.NullLogger.Error(System.String,System.Object[])">
            <summary>
            Error log messsages
            </summary>
            <param name="message"></param>
            <param name="args"></param>
        </member>
        <member name="T:DiscordRPC.Message.CloseMessage">
            <summary>
            Called when the IPC has closed.
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.CloseMessage.Type">
            <summary>
            The type of message
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.CloseMessage.Reason">
            <summary>
            The reason for the close
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.CloseMessage.Code">
            <summary>
            The closure code
            </summary>
        </member>
        <member name="T:DiscordRPC.Message.ConnectionEstablishedMessage">
            <summary>
            The connection to the discord client was succesfull. This is called before <see cref="F:DiscordRPC.Message.MessageType.Ready"/>.
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.ConnectionEstablishedMessage.Type">
            <summary>
            The type of message received from discord
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.ConnectionEstablishedMessage.ConnectedPipe">
            <summary>
            The pipe we ended up connecting too
            </summary>
        </member>
        <member name="T:DiscordRPC.Message.ConnectionFailedMessage">
            <summary>
            Failed to establish any connection with discord. Discord is potentially not running?
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.ConnectionFailedMessage.Type">
            <summary>
            The type of message received from discord
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.ConnectionFailedMessage.FailedPipe">
            <summary>
            The pipe we failed to connect too.
            </summary>
        </member>
        <member name="T:DiscordRPC.Message.ErrorMessage">
            <summary>
            Created when a error occurs within the ipc and it is sent to the client.
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.ErrorMessage.Type">
            <summary>
            The type of message received from discord
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.ErrorMessage.Code">
            <summary>
            The Discord error code.
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.ErrorMessage.Message">
            <summary>
            The message associated with the error code.
            </summary>
        </member>
        <member name="T:DiscordRPC.Message.ErrorCode">
            <summary>
            The error message received by discord. See https://discordapp.com/developers/docs/topics/rpc#rpc-server-payloads-rpc-errors for documentation
            </summary>
        </member>
        <member name="F:DiscordRPC.Message.ErrorCode.Success">
            <summary> Pipe was Successful </summary>
        </member>
        <member name="F:DiscordRPC.Message.ErrorCode.PipeException">
            <summary>The pipe had an exception</summary>
        </member>
        <member name="F:DiscordRPC.Message.ErrorCode.ReadCorrupt">
            <summary>The pipe received corrupted data</summary>
        </member>
        <member name="F:DiscordRPC.Message.ErrorCode.NotImplemented">
            <summary>The functionality was not yet implemented</summary>
        </member>
        <member name="F:DiscordRPC.Message.ErrorCode.UnknownError">
            <summary>Unknown Discord error</summary>
        </member>
        <member name="F:DiscordRPC.Message.ErrorCode.InvalidPayload">
            <summary>Invalid Payload received</summary>
        </member>
        <member name="F:DiscordRPC.Message.ErrorCode.InvalidCommand">
            <summary>Invalid command was sent</summary>
        </member>
        <member name="F:DiscordRPC.Message.ErrorCode.InvalidEvent">
            <summary>Invalid event was sent </summary>
        </member>
        <member name="T:DiscordRPC.Message.IMessage">
            <summary>
            Messages received from discord.
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.IMessage.Type">
            <summary>
            The type of message received from discord
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.IMessage.TimeCreated">
            <summary>
            The time the message was created
            </summary>
        </member>
        <member name="M:DiscordRPC.Message.IMessage.#ctor">
            <summary>
            Creates a new instance of the message
            </summary>
        </member>
        <member name="T:DiscordRPC.Message.JoinMessage">
            <summary>
            Called when the Discord Client wishes for this process to join a game. D -> C.
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.JoinMessage.Type">
            <summary>
            The type of message received from discord
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.JoinMessage.Secret">
            <summary>
            The <see cref="P:DiscordRPC.Secrets.JoinSecret" /> to connect with. 
            </summary>
        </member>
        <member name="T:DiscordRPC.Message.JoinRequestMessage">
            <summary>
            Called when some other person has requested access to this game. C -> D -> C.
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.JoinRequestMessage.Type">
            <summary>
            The type of message received from discord
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.JoinRequestMessage.User">
            <summary>
            The discord user that is requesting access.
            </summary>
        </member>
        <member name="T:DiscordRPC.Message.MessageType">
            <summary>
            Type of message.
            </summary>
        </member>
        <member name="F:DiscordRPC.Message.MessageType.Ready">
            <summary>
            The Discord Client is ready to send and receive messages.
            </summary>
        </member>
        <member name="F:DiscordRPC.Message.MessageType.Close">
            <summary>
            The connection to the Discord Client is lost. The connection will remain close and unready to accept messages until the Ready event is called again.
            </summary>
        </member>
        <member name="F:DiscordRPC.Message.MessageType.Error">
            <summary>
            A error has occured during the transmission of a message. For example, if a bad Rich Presence payload is sent, this event will be called explaining what went wrong.
            </summary>
        </member>
        <member name="F:DiscordRPC.Message.MessageType.PresenceUpdate">
            <summary>
            The Discord Client has updated the presence.
            </summary>
        </member>
        <member name="F:DiscordRPC.Message.MessageType.Subscribe">
            <summary>
            The Discord Client has subscribed to an event.
            </summary>
        </member>
        <member name="F:DiscordRPC.Message.MessageType.Unsubscribe">
            <summary>
            The Discord Client has unsubscribed from an event.
            </summary>
        </member>
        <member name="F:DiscordRPC.Message.MessageType.Join">
            <summary>
            The Discord Client wishes for this process to join a game.
            </summary>
        </member>
        <member name="F:DiscordRPC.Message.MessageType.Spectate">
            <summary>
            The Discord Client wishes for this process to spectate a game. 
            </summary>
        </member>
        <member name="F:DiscordRPC.Message.MessageType.JoinRequest">
            <summary>
            Another discord user requests permission to join this game.
            </summary>
        </member>
        <member name="F:DiscordRPC.Message.MessageType.ConnectionEstablished">
            <summary>
            The connection to the discord client was succesfull. This is called before <see cref="F:DiscordRPC.Message.MessageType.Ready"/>.
            </summary>
        </member>
        <member name="F:DiscordRPC.Message.MessageType.ConnectionFailed">
            <summary>
            Failed to establish any connection with discord. Discord is potentially not running?
            </summary>
        </member>
        <member name="T:DiscordRPC.Message.PresenceMessage">
            <summary>
            Representation of the message received by discord when the presence has been updated.
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.PresenceMessage.Type">
            <summary>
            The type of message received from discord
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.PresenceMessage.Presence">
            <summary>
            The rich presence Discord has set
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.PresenceMessage.Name">
            <summary>
            The name of the application Discord has set it for
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.PresenceMessage.ApplicationID">
            <summary>
            The ID of the application discord has set it for
            </summary>
        </member>
        <member name="T:DiscordRPC.Message.ReadyMessage">
            <summary>
            Called when the ipc is ready to send arguments.
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.ReadyMessage.Type">
            <summary>
            The type of message received from discord
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.ReadyMessage.Configuration">
            <summary>
            The configuration of the connection
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.ReadyMessage.User">
            <summary>
            User the connection belongs too
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.ReadyMessage.Version">
            <summary>
            The version of the RPC
            </summary>
        </member>
        <member name="T:DiscordRPC.Message.SpectateMessage">
            <summary>
            Called when the Discord Client wishes for this process to spectate a game. D -> C. 
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.SpectateMessage.Type">
            <summary>
            The type of message received from discord
            </summary>
        </member>
        <member name="T:DiscordRPC.Message.SubscribeMessage">
            <summary>
            Called as validation of a subscribe
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.SubscribeMessage.Type">
            <summary>
            The type of message received from discord
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.SubscribeMessage.Event">
            <summary>
            The event that was subscribed too.
            </summary>
        </member>
        <member name="T:DiscordRPC.Message.UnsubscribeMessage">
            <summary>
            Called as validation of a subscribe
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.UnsubscribeMessage.Type">
            <summary>
            The type of message received from discord
            </summary>
        </member>
        <member name="P:DiscordRPC.Message.UnsubscribeMessage.Event">
            <summary>
            The event that was subscribed too.
            </summary>
        </member>
        <member name="T:DiscordRPC.Registry.IRegisterUriScheme">
            <summary>
            Interface for registering a URI scheme.
            </summary>
        </member>
        <member name="M:DiscordRPC.Registry.IRegisterUriScheme.Register(DiscordRPC.Registry.SchemeInfo)">
            <summary>
            Registers the URI scheme. If Steam ID is passed, the application will be launched through steam instead of directly.
            <para>Additional arguments can be supplied if required.</para>
            </summary>
            <param name="info">The register context.</param>
        </member>
        <member name="T:DiscordRPC.Registry.MacUriScheme">
            <summary>
            Registers a URI scheme on MacOS.
            </summary>
        </member>
        <member name="M:DiscordRPC.Registry.MacUriScheme.#ctor(DiscordRPC.Logging.ILogger)">
            <summary>
            Initializes a new instance of the <see cref="T:DiscordRPC.Registry.MacUriScheme"/> class.
            </summary>
            <param name="logger"></param>
        </member>
        <member name="M:DiscordRPC.Registry.MacUriScheme.Register(DiscordRPC.Registry.SchemeInfo)">
            <inheritdoc/>
        </member>
        <member name="T:DiscordRPC.Registry.UnixUriScheme">
            <summary>
            Registers a URI scheme on Unix-like systems using the xdg-open command. 
            The scheme is saved as a .desktop file in the user's local applications directory.
            </summary>
        </member>
        <member name="M:DiscordRPC.Registry.UnixUriScheme.#ctor(DiscordRPC.Logging.ILogger)">
            <summary>
            Initializes a new instance of the <see cref="T:DiscordRPC.Registry.UnixUriScheme"/> class.
            </summary>
            <param name="logger"></param>
        </member>
        <member name="M:DiscordRPC.Registry.UnixUriScheme.Register(DiscordRPC.Registry.SchemeInfo)">
            <inheritdoc/>
        </member>
        <member name="T:DiscordRPC.Registry.SchemeInfo">
            <summary>
            URI Scheme information to register to the system.
            </summary>
        </member>
        <member name="P:DiscordRPC.Registry.SchemeInfo.ApplicationID">
            <summary>
            The Discord application ID for the game or application.
            </summary>
        </member>
        <member name="P:DiscordRPC.Registry.SchemeInfo.SteamAppID">
            <summary>
            The Steam application ID if the game is registered through Steam. When set, the application will be launched through Steam instead of directly.
            <para>Can be null if the game is not registered through Steam.</para>
            </summary>
        </member>
        <member name="P:DiscordRPC.Registry.SchemeInfo.ExecutablePath">
            <summary>
            The path to the executable that will be launched when the URI scheme is invoked.
            </summary>
        </member>
        <member name="P:DiscordRPC.Registry.SchemeInfo.UsingSteamApp">
            <summary>
            Indicates whether the scheme is using a Steam application ID.
            </summary>
        </member>
        <member name="T:DiscordRPC.Registry.UriScheme">
            <summary>
            Registers a URI Scheme for the current platform.
            </summary>
        </member>
        <member name="M:DiscordRPC.Registry.UriScheme.Register(DiscordRPC.Registry.SchemeInfo,DiscordRPC.Logging.ILogger)">
            <summary>
            Registers the URI Scheme for the current platform.
            </summary>
        </member>
        <member name="T:DiscordRPC.Registry.WindowsUriScheme">
            <summary>
            Registers a URI scheme on Windows.
            </summary>
        </member>
        <member name="M:DiscordRPC.Registry.WindowsUriScheme.#ctor(DiscordRPC.Logging.ILogger)">
            <summary>
            Initializes a new instance of the <see cref="T:DiscordRPC.Registry.WindowsUriScheme"/> class.
            </summary>
            <param name="logger"></param>
        </member>
        <member name="M:DiscordRPC.Registry.WindowsUriScheme.Register(DiscordRPC.Registry.SchemeInfo)">
            <inheritdoc/>
        </member>
        <member name="M:DiscordRPC.Registry.WindowsUriScheme.CreateUriScheme(System.String,System.String,System.String,System.String)">
            <summary>
            Creates the actual scheme
            </summary>
            <param name="scheme"></param>
            <param name="friendlyName"></param>
            <param name="defaultIcon"></param>
            <param name="command"></param>
        </member>
        <member name="M:DiscordRPC.Registry.WindowsUriScheme.GetSteamLocation">
            <summary>
            Gets the current location of the steam client
            </summary>
            <returns></returns>
        </member>
        <member name="P:DiscordRPC.RPC.Commands.CloseCommand.PID">
            <summary>
            The process ID
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Commands.CloseCommand.value">
            <summary>
            The rich presence to be set. Can be null.
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.Commands.PresenceCommand.PID">
            <summary>
            The process ID
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.Commands.PresenceCommand.Presence">
            <summary>
            The rich presence to be set. Can be null.
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.Commands.RespondCommand.UserID">
            <summary>
            The user ID that we are accepting / rejecting
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.Commands.RespondCommand.Accept">
            <summary>
            If true, the user will be allowed to connect.
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.Payload.ClosePayload.Code">
            <summary>
            The close code the discord gave us
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.Payload.ClosePayload.Reason">
            <summary>
            The close reason discord gave us
            </summary>
        </member>
        <member name="T:DiscordRPC.RPC.Payload.Command">
            <summary>
            The possible commands that can be sent and received by the server.
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.Dispatch">
            <summary>
            event dispatch
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.SetActivity">
            <summary>
            Called to set the activity
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.Subscribe">
            <summary>
            used to subscribe to an RPC event
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.Unsubscribe">
            <summary>
            used to unsubscribe from an RPC event
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.SendActivityJoinInvite">
            <summary>
            Used to accept join requests.
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.CloseActivityJoinRequest">
            <summary>
            Used to reject join requests.
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.Authorize">
            <summary>
            used to authorize a new client with your app
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.Authenticate">
            <summary>
            used to authenticate an existing client with your app
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.GetGuild">
            <summary>
            used to retrieve guild information from the client
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.GetGuilds">
            <summary>
            used to retrieve a list of guilds from the client
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.GetChannel">
            <summary>
            used to retrieve channel information from the client
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.GetChannels">
            <summary>
            used to retrieve a list of channels for a guild from the client
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.SetUserVoiceSettings">
            <summary>
            used to change voice settings of users in voice channels
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.SelectVoiceChannel">
            <summary>
            used to join or leave a voice channel, group dm, or dm
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.GetSelectedVoiceChannel">
            <summary>
            used to get the current voice channel the client is in
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.SelectTextChannel">
            <summary>
            used to join or leave a text channel, group dm, or dm
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.GetVoiceSettings">
            <summary>
            used to retrieve the client's voice settings
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.SetVoiceSettings">
            <summary>
            used to set the client's voice settings
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.Command.CaptureShortcut">
            <summary>
            used to capture a keyboard shortcut entered by the user RPC Events
            </summary>
        </member>
        <member name="T:DiscordRPC.RPC.Payload.IPayload">
            <summary>
            Base Payload that is received by both client and server
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.Payload.IPayload.Command">
            <summary>
            The type of payload
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.Payload.IPayload.Nonce">
            <summary>
            A incremental value to help identify payloads
            </summary>
        </member>
        <member name="T:DiscordRPC.RPC.Payload.ArgumentPayload">
            <summary>
            The payload that is sent by the client to discord for events such as setting the rich presence.
            <para>
            SetPrecense
            </para>
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.Payload.ArgumentPayload.Arguments">
            <summary>
            The data the server sent too us
            </summary>
        </member>
        <member name="M:DiscordRPC.RPC.Payload.ArgumentPayload.SetObject(System.Object)">
            <summary>
            Sets the obejct stored within the data.
            </summary>
            <param name="obj"></param>
        </member>
        <member name="M:DiscordRPC.RPC.Payload.ArgumentPayload.GetObject``1">
            <summary>
            Gets the object stored within the Data
            </summary>
            <typeparam name="T"></typeparam>
            <returns></returns>
        </member>
        <member name="T:DiscordRPC.RPC.Payload.EventPayload">
            <summary>
            Used for Discord IPC Events
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.Payload.EventPayload.Data">
            <summary>
            The data the server sent too us
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.Payload.EventPayload.Event">
            <summary>
            The type of event the server sent
            </summary>
        </member>
        <member name="M:DiscordRPC.RPC.Payload.EventPayload.#ctor">
            <summary>
            Creates a payload with empty data
            </summary>
        </member>
        <member name="M:DiscordRPC.RPC.Payload.EventPayload.#ctor(System.Int64)">
            <summary>
            Creates a payload with empty data and a set nonce
            </summary>
            <param name="nonce"></param>
        </member>
        <member name="M:DiscordRPC.RPC.Payload.EventPayload.GetObject``1">
            <summary>
            Gets the object stored within the Data
            </summary>
            <typeparam name="T"></typeparam>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.RPC.Payload.EventPayload.ToString">
            <summary>
            Converts the object into a human readable string
            </summary>
            <returns></returns>
        </member>
        <member name="T:DiscordRPC.RPC.Payload.ServerEvent">
            <summary>
            See https://discordapp.com/developers/docs/topics/rpc#rpc-server-payloads-rpc-events for documentation
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.ServerEvent.Ready">
            <summary>
            Sent when the server is ready to accept messages
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.ServerEvent.Error">
            <summary>
            Sent when something bad has happened
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.ServerEvent.ActivityJoin">
            <summary>
            Join Event 
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.ServerEvent.ActivitySpectate">
            <summary>
            Spectate Event
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.Payload.ServerEvent.ActivityJoinRequest">
            <summary>
            Request Event
            </summary>
        </member>
        <member name="T:DiscordRPC.RPC.RpcConnection">
            <summary>
            Communicates between the client and discord through RPC
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.RpcConnection.VERSION">
            <summary>
            Version of the RPC Protocol
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.RpcConnection.POLL_RATE">
            <summary>
            The rate of poll to the discord pipe.
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.RpcConnection.CLEAR_ON_SHUTDOWN">
            <summary>
            Should we send a null presence on the fairwells?
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.RpcConnection.LOCK_STEP">
            <summary>
            Should we work in a lock step manner? This option is semi-obsolete and may not work as expected.
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.RpcConnection.Logger">
            <summary>
            The logger used by the RPC connection
            </summary>
        </member>
        <member name="E:DiscordRPC.RPC.RpcConnection.OnRpcMessage">
            <summary>
            Called when a message is received from the RPC and is about to be enqueued. This is cross-thread and will execute on the RPC thread.
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.RpcConnection.State">
            <summary>
            The current state of the RPC connection
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.RpcConnection.Configuration">
            <summary>
            The configuration received by the Ready
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.RpcConnection.IsRunning">
            <summary>
            Indicates if the RPC connection is still running in the background
            </summary>
        </member>
        <member name="P:DiscordRPC.RPC.RpcConnection.ShutdownOnly">
            <summary>
            Forces the <see cref="M:DiscordRPC.RPC.RpcConnection.Close"/> to call <see cref="M:DiscordRPC.RPC.RpcConnection.Shutdown"/> instead, safely saying goodbye to Discord. 
            <para>This option helps prevents ghosting in applications where the Process ID is a host and the game is executed within the host (ie: the Unity3D editor). This will tell Discord that we have no presence and we are closing the connection manually, instead of waiting for the process to terminate.</para>
            </summary>
        </member>
        <member name="M:DiscordRPC.RPC.RpcConnection.#ctor(System.String,System.Int32,System.Int32,DiscordRPC.IO.INamedPipeClient,System.UInt32,System.UInt32)">
            <summary>
            Creates a new instance of the RPC.
            </summary>
            <param name="applicationID">The ID of the Discord App</param>
            <param name="processID">The ID of the currently running process</param>
            <param name="targetPipe">The target pipe to connect too</param>
            <param name="client">The pipe client we shall use.</param>
            <param name="maxRxQueueSize">The maximum size of the out queue</param>
            <param name="maxRtQueueSize">The maximum size of the in queue</param>
        </member>
        <member name="M:DiscordRPC.RPC.RpcConnection.EnqueueCommand(DiscordRPC.RPC.Commands.ICommand)">
            <summary>
            Enqueues a command
            </summary>
            <param name="command">The command to enqueue</param>
        </member>
        <member name="M:DiscordRPC.RPC.RpcConnection.EnqueueMessage(DiscordRPC.Message.IMessage)">
            <summary>
            Adds a message to the message queue. Does not copy the message, so besure to copy it yourself or dereference it.
            </summary>
            <param name="message">The message to add</param>
        </member>
        <member name="M:DiscordRPC.RPC.RpcConnection.DequeueMessage">
            <summary>
            Dequeues a single message from the event stack. Returns null if none are available.
            </summary>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.RPC.RpcConnection.DequeueMessages">
            <summary>
            Dequeues all messages from the event stack. 
            </summary>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.RPC.RpcConnection.MainLoop">
            <summary>
            Main thread loop
            </summary>
        </member>
        <member name="M:DiscordRPC.RPC.RpcConnection.ProcessFrame(DiscordRPC.RPC.Payload.EventPayload)">
            <summary>Handles the response from the pipe and calls appropriate events and changes states.</summary>
            <param name="response">The response received by the server.</param>
        </member>
        <member name="M:DiscordRPC.RPC.RpcConnection.EstablishHandshake">
            <summary>
            Establishes the handshake with the server. 
            </summary>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.RPC.RpcConnection.SendHandwave">
            <summary>
            Establishes a fairwell with the server by sending a handwave.
            </summary>
        </member>
        <member name="M:DiscordRPC.RPC.RpcConnection.AttemptConnection">
            <summary>
            Attempts to connect to the pipe. Returns true on success
            </summary>
            <returns></returns>
        </member>
        <member name="M:DiscordRPC.RPC.RpcConnection.SetConnectionState(DiscordRPC.RPC.RpcState)">
            <summary>
            Sets the current state of the pipe, locking the l_states object for thread saftey.
            </summary>
            <param name="state">The state to set it too.</param>
        </member>
        <member name="M:DiscordRPC.RPC.RpcConnection.Shutdown">
            <summary>
            Closes the connection and disposes of resources. This will not force termination, but instead allow Discord disconnect us after we say goodbye. 
            <para>This option helps prevents ghosting in applications where the Process ID is a host and the game is executed within the host (ie: the Unity3D editor). This will tell Discord that we have no presence and we are closing the connection manually, instead of waiting for the process to terminate.</para>
            </summary>
        </member>
        <member name="M:DiscordRPC.RPC.RpcConnection.Close">
            <summary>
            Closes the connection and disposes of resources.
            </summary>
        </member>
        <member name="M:DiscordRPC.RPC.RpcConnection.Dispose">
            <summary>
            Closes the connection and disposes resources. Identical to <see cref="M:DiscordRPC.RPC.RpcConnection.Close"/> but ignores the "ShutdownOnly" value.
            </summary>
        </member>
        <member name="T:DiscordRPC.RPC.RpcState">
            <summary>
            State of the RPC connection
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.RpcState.Disconnected">
            <summary>
            Disconnected from the discord client
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.RpcState.Connecting">
            <summary>
            Connecting to the discord client. The handshake has been sent and we are awaiting the ready event
            </summary>
        </member>
        <member name="F:DiscordRPC.RPC.RpcState.Connected">
            <summary>
            We are connect to the client and can send and receive messages.
            </summary>
        </member>
    </members>
</doc>
