<Type Name="ServiceTypeBrowser" FullName="Avahi.ServiceTypeBrowser">
  <TypeSignature Language="C#" Value="public class ServiceTypeBrowser : Avahi.BrowserBase, System.IDisposable" />
  <AssemblyInfo>
    <AssemblyName>avahi-sharp</AssemblyName>
    <AssemblyVersion>1.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>Avahi.BrowserBase</BaseTypeName>
  </Base>
  <Interfaces>
    <Interface>
      <InterfaceName>System.IDisposable</InterfaceName>
    </Interface>
  </Interfaces>
  <Members>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public ServiceTypeBrowser (Avahi.Client client);" />
      <MemberType>Constructor</MemberType>
      <Parameters>
        <Parameter Name="client" Type="Avahi.Client" />
      </Parameters>
      <Docs>
        <param name="client">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public ServiceTypeBrowser (Avahi.Client client, string domain);" />
      <MemberType>Constructor</MemberType>
      <Parameters>
        <Parameter Name="client" Type="Avahi.Client" />
        <Parameter Name="domain" Type="System.String" />
      </Parameters>
      <Docs>
        <param name="client">To be added.</param>
        <param name="domain">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ServiceTypeAdded">
      <MemberSignature Language="C#" Value="public event Avahi.ServiceTypeInfoHandler ServiceTypeAdded;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Avahi.ServiceTypeInfoHandler</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ServiceTypeRemoved">
      <MemberSignature Language="C#" Value="public event Avahi.ServiceTypeInfoHandler ServiceTypeRemoved;" />
      <MemberType>Event</MemberType>
      <ReturnValue>
        <ReturnType>Avahi.ServiceTypeInfoHandler</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="Dispose">
      <MemberSignature Language="C#" Value="public void Dispose ();" />
      <MemberType>Method</MemberType>
      <ReturnValue>
        <ReturnType>System.Void</ReturnType>
      </ReturnValue>
      <Parameters />
      <Docs>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName="ServiceTypes">
      <MemberSignature Language="C#" Value="public Avahi.ServiceTypeInfo[] ServiceTypes { get; };" />
      <MemberType>Property</MemberType>
      <ReturnValue>
        <ReturnType>Avahi.ServiceTypeInfo[]</ReturnType>
      </ReturnValue>
      <Docs>
        <summary>To be added.</summary>
        <value>To be added.</value>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
    <Member MemberName=".ctor">
      <MemberSignature Language="C#" Value="public ServiceTypeBrowser (Avahi.Client client, int iface, Avahi.Protocol proto, string domain, Avahi.LookupFlags flags);" />
      <MemberType>Constructor</MemberType>
      <Parameters>
        <Parameter Name="client" Type="Avahi.Client" />
        <Parameter Name="iface" Type="System.Int32" />
        <Parameter Name="proto" Type="Avahi.Protocol" />
        <Parameter Name="domain" Type="System.String" />
        <Parameter Name="flags" Type="Avahi.LookupFlags" />
      </Parameters>
      <Docs>
        <param name="client">To be added.</param>
        <param name="iface">To be added.</param>
        <param name="proto">To be added.</param>
        <param name="domain">To be added.</param>
        <param name="flags">To be added.</param>
        <summary>To be added.</summary>
        <remarks>To be added.</remarks>
      </Docs>
    </Member>
  </Members>
  <Docs>
    <summary>To be added.</summary>
    <remarks>To be added.</remarks>
  </Docs>
</Type>
