using MediaBrowser.Model.Net;
using System.Collections.Generic;
namespace MediaBrowser.Common.Net
{
    public interface INetworkManager
    {
        /// 
        /// Gets the machine's local ip address
        /// 
        /// IPAddress.
        string GetLocalIpAddress();
        /// 
        /// Gets a random port number that is currently available
        /// 
        /// System.Int32.
        int GetRandomUnusedPort();
        /// 
        /// Creates the netsh URL registration.
        /// 
        void AuthorizeHttpListening(string url);
        /// 
        /// Adds the windows firewall rule.
        /// 
        /// The port.
        /// The protocol.
        void AddSystemFirewallRule(int port, NetworkProtocol protocol);
        /// 
        /// Removes the windows firewall rule.
        /// 
        /// The port.
        /// The protocol.
        void RemoveSystemFirewallRule(int port, NetworkProtocol protocol);
        /// 
        /// Returns MAC Address from first Network Card in Computer
        /// 
        /// [string] MAC Address
        string GetMacAddress();
        /// 
        /// Gets available devices within the domain
        /// 
        /// PC's in the Domain
        IEnumerable GetNetworkDevices();
        /// 
        /// Gets the network shares.
        /// 
        /// The path.
        /// IEnumerable{NetworkShare}.
        IEnumerable GetNetworkShares(string path);
    }
    /// 
    /// Enum NetworkProtocol
    /// 
    public enum NetworkProtocol
    {
        /// 
        /// The TCP
        /// 
        Tcp,
        /// 
        /// The UDP
        /// 
        Udp
    }
}