/* Auto-generated, do not edit.
 *
 * This file may be distributed under the same terms
 * as the specification from which it was generated.
 */

/**
 * MC_HASH_TYPE_CHANNEL_COUNT_MAP:
 *
 * A mapping from strings representing channel types to their usage count
 *
 * This macro expands to a call to a function
 * that returns the #GType of a #GHashTable
 * appropriate for representing a D-Bus
 * dictionary of signature
 * <literal>a{su}</literal>.
 *
 * Keys (D-Bus type <literal>s</literal>,
 * named <literal>Key</literal>):
 * (Undocumented)
 *
 * Values (D-Bus type <literal>u</literal>,
 * named <literal>Value</literal>):
 * (Undocumented)
 *
 */
#define MC_HASH_TYPE_CHANNEL_COUNT_MAP (mc_type_dbus_hash_su ())

/**
 * MC_HASH_TYPE_CONTACT_CAPABILITIES_MAP_1:
 *
 * A mapping from contact handle to their capabilities.
 *
 * This macro expands to a call to a function
 * that returns the #GType of a #GHashTable
 * appropriate for representing a D-Bus
 * dictionary of signature
 * <literal>a{ua(a{sv}as)}</literal>.
 *
 * Keys (D-Bus type <literal>u</literal>,
 * type <literal>Contact_Handle</literal>,
 * named <literal>Key</literal>):
 * A contact handle.
 *
 * Values (D-Bus type <literal>a(a{sv}as)</literal>,
 * type <literal>Requestable_Channel_Class[]</literal>,
 * named <literal>Value</literal>):
 * The contact capabilities.
 *
 */
#define MC_HASH_TYPE_CONTACT_CAPABILITIES_MAP_1 (mc_type_dbus_hash_ua_28a_7bsv_7das_29 ())

/**
 * MC_ARRAY_TYPE_CONTACT_CAPABILITIES_MAP_1_LIST:

 * Expands to a call to a function
 * that returns the #GType of a #GPtrArray
 * of #MC_HASH_TYPE_CONTACT_CAPABILITIES_MAP_1.
 */
#define MC_ARRAY_TYPE_CONTACT_CAPABILITIES_MAP_1_LIST (mc_type_dbus_array_of_a_7bua_28a_7bsv_7das_29_7d ())

/**
 * MC_HASH_TYPE_CONTACT_CAPABILITIES_MAP:
 *
 * A mapping from contact handle to their capabilities.
 *
 * This macro expands to a call to a function
 * that returns the #GType of a #GHashTable
 * appropriate for representing a D-Bus
 * dictionary of signature
 * <literal>a{ua(a{sv}as)}</literal>.
 *
 * Keys (D-Bus type <literal>u</literal>,
 * type <literal>Contact_Handle</literal>,
 * named <literal>Key</literal>):
 * A contact handle.
 *
 * Values (D-Bus type <literal>a(a{sv}as)</literal>,
 * type <literal>Requestable_Channel_Class[]</literal>,
 * named <literal>Value</literal>):
 * The contact capabilities.
 *
 */
#define MC_HASH_TYPE_CONTACT_CAPABILITIES_MAP (mc_type_dbus_hash_ua_28a_7bsv_7das_29 ())

/**
 * MC_ARRAY_TYPE_CONTACT_CAPABILITIES_MAP_LIST:

 * Expands to a call to a function
 * that returns the #GType of a #GPtrArray
 * of #MC_HASH_TYPE_CONTACT_CAPABILITIES_MAP.
 */
#define MC_ARRAY_TYPE_CONTACT_CAPABILITIES_MAP_LIST (mc_type_dbus_array_of_a_7bua_28a_7bsv_7das_29_7d ())

/**
 * MC_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP:
 *
 * A mapping from strings representing D-Bus       properties (by their namespaced names) to their values.
 *
 * This macro expands to a call to a function
 * that returns the #GType of a #GHashTable
 * appropriate for representing a D-Bus
 * dictionary of signature
 * <literal>a{sv}</literal>.
 *
 * Keys (D-Bus type <literal>s</literal>,
 * type <literal>DBus_Qualified_Member</literal>,
 * named <literal>Key</literal>):
 * A D-Bus interface name, followed by a dot and a D-Bus property name.
 *
 * Values (D-Bus type <literal>v</literal>,
 * named <literal>Value</literal>):
 * The value of the property.
 *
 */
#define MC_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP (mc_type_dbus_hash_sv ())

/**
 * MC_ARRAY_TYPE_QUALIFIED_PROPERTY_VALUE_MAP_LIST:

 * Expands to a call to a function
 * that returns the #GType of a #GPtrArray
 * of #MC_HASH_TYPE_QUALIFIED_PROPERTY_VALUE_MAP.
 */
#define MC_ARRAY_TYPE_QUALIFIED_PROPERTY_VALUE_MAP_LIST (mc_type_dbus_array_of_a_7bsv_7d ())

/**
 * MC_HASH_TYPE_STRING_VARIANT_MAP:
 *
 * A mapping from strings to variants representing extra       key-value pairs.
 *
 * This macro expands to a call to a function
 * that returns the #GType of a #GHashTable
 * appropriate for representing a D-Bus
 * dictionary of signature
 * <literal>a{sv}</literal>.
 *
 * Keys (D-Bus type <literal>s</literal>,
 * named <literal>Key</literal>):
 * (Undocumented)
 *
 * Values (D-Bus type <literal>v</literal>,
 * named <literal>Value</literal>):
 * (Undocumented)
 *
 */
#define MC_HASH_TYPE_STRING_VARIANT_MAP (mc_type_dbus_hash_sv ())

/**
 * MC_HASH_TYPE_STRING_STRING_MAP:
 *
 * A mapping from strings to strings representing extra       key-value pairs.
 *
 * This macro expands to a call to a function
 * that returns the #GType of a #GHashTable
 * appropriate for representing a D-Bus
 * dictionary of signature
 * <literal>a{ss}</literal>.
 *
 * Keys (D-Bus type <literal>s</literal>,
 * named <literal>Key</literal>):
 * (Undocumented)
 *
 * Values (D-Bus type <literal>s</literal>,
 * named <literal>Value</literal>):
 * (Undocumented)
 *
 */
#define MC_HASH_TYPE_STRING_STRING_MAP (mc_type_dbus_hash_ss ())

/**
 * MC_HASH_TYPE_CHANNEL_CLASS:
 *
 * &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;       &lt;p&gt;Mapping representing a class of channels that can be requested 	from a connection manager, can be handled by a user interface, 	are supported by a contact, etc.&lt;/p&gt;        &lt;p&gt;Classes of channel are identified by the fixed values of 	a subset of their properties.&lt;/p&gt;        &lt;p&gt;Channel classes SHOULD always include the keys 	&lt;tp:dbus-ref&gt;org.freedesktop.Telepathy.Channel.ChannelType&lt;/tp:dbus-ref&gt; 	and 	&lt;tp:dbus-ref&gt;org.freedesktop.Telepathy.Channel.TargetHandleType&lt;/tp:dbus-ref&gt;. 	&lt;/p&gt;
 *
 * This macro expands to a call to a function
 * that returns the #GType of a #GHashTable
 * appropriate for representing a D-Bus
 * dictionary of signature
 * <literal>a{sv}</literal>.
 *
 * Keys (D-Bus type <literal>s</literal>,
 * type <literal>DBus_Qualified_Member</literal>,
 * named <literal>Key</literal>):
 * A D-Bus interface name, followed by a dot and a D-Bus property name.
 *
 * Values (D-Bus type <literal>v</literal>,
 * named <literal>Value</literal>):
 * The value of the property.
 *
 */
#define MC_HASH_TYPE_CHANNEL_CLASS (mc_type_dbus_hash_sv ())

/**
 * MC_ARRAY_TYPE_CHANNEL_CLASS_LIST:

 * Expands to a call to a function
 * that returns the #GType of a #GPtrArray
 * of #MC_HASH_TYPE_CHANNEL_CLASS.
 */
#define MC_ARRAY_TYPE_CHANNEL_CLASS_LIST (mc_type_dbus_array_of_a_7bsv_7d ())

GType mc_type_dbus_hash_ua_28a_7bsv_7das_29 (void);

GType mc_type_dbus_hash_ss (void);

GType mc_type_dbus_hash_sv (void);

GType mc_type_dbus_hash_su (void);

/**
 * MC_STRUCT_TYPE_AVATAR:

 * &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
	
        
	&lt;p&gt;
		A struct containing avatar data marked with its MIME type.
	&lt;/p&gt;
	
      

 *
 * This macro expands to a call to a function
 * that returns the #GType of a #GValueArray
 * appropriate for representing a D-Bus struct
 * with signature <literal>(ays)</literal>.
 *
 * Member 0 (D-Bus type <literal>ay</literal>,
 * named <literal>Avatar_Data</literal>):
 * (Undocumented)
 *
 * Member 1 (D-Bus type <literal>s</literal>,
 * named <literal>MIME_Type</literal>):
 * (Undocumented)
 *
 */
#define MC_STRUCT_TYPE_AVATAR (mc_type_dbus_struct_ays ())

/**
 * MC_STRUCT_TYPE_DISPATCH_OPERATION_DETAILS:

 * 
	
        Details of a channel dispatch operation.
      

 *
 * This macro expands to a call to a function
 * that returns the #GType of a #GValueArray
 * appropriate for representing a D-Bus struct
 * with signature <literal>(oa{sv})</literal>.
 *
 * Member 0 (D-Bus type <literal>o</literal>,
 * named <literal>Channel_Dispatch_Operation</literal>):
 * The object path of the           &lt;tp:dbus-ref namespace=&quot;org.freedesktop.Telepathy&quot;&gt;ChannelDispatchOperation&lt;/tp:dbus-ref&gt;.
 *
 * Member 1 (D-Bus type <literal>a{sv}</literal>,
 * type <literal>Qualified_Property_Value_Map</literal>,
 * named <literal>Properties</literal>):
 * &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;           &lt;p&gt;Properties of the channel dispatch operation.&lt;/p&gt;            &lt;p&gt;Connection managers MUST NOT include properties in this mapping             if their values can change. Clients MUST ignore properties             that appear in this mapping if their values can change.&lt;/p&gt;            &lt;tp:rationale&gt;             &lt;p&gt;The rationale is the same as for               &lt;tp:type-ref&gt;Channel_Details&lt;/tp:type-ref&gt;.&lt;/p&gt;           &lt;/tp:rationale&gt;            &lt;p&gt;Each dictionary MUST contain at least the following keys:&lt;/p&gt;           &lt;ul&gt;             &lt;li&gt;&lt;tp:dbus-ref&gt;org.freedesktop.Telepathy.ChannelDispatchOperation.Interfaces&lt;/tp:dbus-ref&gt;&lt;/li&gt;             &lt;li&gt;&lt;tp:dbus-ref&gt;org.freedesktop.Telepathy.ChannelDispatchOperation.Connection&lt;/tp:dbus-ref&gt;&lt;/li&gt;             &lt;li&gt;&lt;tp:dbus-ref&gt;org.freedesktop.Telepathy.ChannelDispatchOperation.Account&lt;/tp:dbus-ref&gt;&lt;/li&gt;             &lt;li&gt;&lt;tp:dbus-ref&gt;org.freedesktop.Telepathy.ChannelDispatchOperation.PossibleHandlers&lt;/tp:dbus-ref&gt;&lt;/li&gt;           &lt;/ul&gt;
 *
 */
#define MC_STRUCT_TYPE_DISPATCH_OPERATION_DETAILS (mc_type_dbus_struct_oa_7bsv_7d ())

/**
 * MC_ARRAY_TYPE_DISPATCH_OPERATION_DETAILS_LIST:

 * Expands to a call to a function
 * that returns the #GType of a #GPtrArray
 * of #MC_STRUCT_TYPE_DISPATCH_OPERATION_DETAILS.
 */
#define MC_ARRAY_TYPE_DISPATCH_OPERATION_DETAILS_LIST (mc_type_dbus_array_oa_7bsv_7d ())

/**
 * MC_STRUCT_TYPE_HANDLER_CAPABILITIES:

 * 
	
        A structure representing the capabilities of a single client.
      

 *
 * This macro expands to a call to a function
 * that returns the #GType of a #GValueArray
 * appropriate for representing a D-Bus struct
 * with signature <literal>(saa{sv}as)</literal>.
 *
 * Member 0 (D-Bus type <literal>s</literal>,
 * type <literal>DBus_Well_Known_Name</literal>,
 * named <literal>Well_Known_Name</literal>):
 * For implementations of the &lt;tp:dbus-ref namespace=&quot;org.freedesktop.Telepathy&quot;&gt;Client&lt;/tp:dbus-ref&gt;           interface, the well-known bus name name of the client; for any other           process, any other reversed domain name that uniquely identifies it.
 *
 * Member 1 (D-Bus type <literal>aa{sv}</literal>,
 * type <literal>String_Variant_Map[]</literal>,
 * named <literal>Channel_Classes</literal>):
 * &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;           An array of channel classes that can be handled by this client.           This will usually be a copy of the client&apos;s &lt;tp:dbus-ref namespace=&quot;org.freedesktop.Telepathy.Client.Handler&quot;&gt;HandlerChannelFilter&lt;/tp:dbus-ref&gt;           property.
 *
 * Member 2 (D-Bus type <literal>as</literal>,
 * type <literal>Handler_Capability_Token[]</literal>,
 * named <literal>Capabilities</literal>):
 * &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;           An array of client capabilities supported by this client, to be           used by the connection manager to determine what capabilities to           advertise. This will usually be a copy of the client&apos;s &lt;tp:dbus-ref namespace=&quot;org.freedesktop.Telepathy.Client.Handler&quot;&gt;Capabilities&lt;/tp:dbus-ref&gt;           property.
 *
 */
#define MC_STRUCT_TYPE_HANDLER_CAPABILITIES (mc_type_dbus_struct_saa_7bsv_7das ())

/**
 * MC_ARRAY_TYPE_HANDLER_CAPABILITIES_LIST:

 * Expands to a call to a function
 * that returns the #GType of a #GPtrArray
 * of #MC_STRUCT_TYPE_HANDLER_CAPABILITIES.
 */
#define MC_ARRAY_TYPE_HANDLER_CAPABILITIES_LIST (mc_type_dbus_array_saa_7bsv_7das ())

/**
 * MC_STRUCT_TYPE_CHANNEL_DETAILS:

 * 
	
      Enough details of a channel that clients can work out how to dispatch
      or handle it.
    

 *
 * This macro expands to a call to a function
 * that returns the #GType of a #GValueArray
 * appropriate for representing a D-Bus struct
 * with signature <literal>(oa{sv})</literal>.
 *
 * Member 0 (D-Bus type <literal>o</literal>,
 * named <literal>Channel</literal>):
 * The object path of the channel.
 *
 * Member 1 (D-Bus type <literal>a{sv}</literal>,
 * type <literal>Qualified_Property_Value_Map</literal>,
 * named <literal>Properties</literal>):
 * &lt;tp:docstring xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt; 	&lt;p&gt;Properties of the channel.&lt;/p&gt;  	&lt;p&gt;Connection managers MUST NOT include properties in this mapping 	  if their values can change. Clients MUST ignore properties 	  that appear in this mapping if their values can change.&lt;/p&gt;  	&lt;tp:rationale&gt; 	  &lt;p&gt;If properties that could change were included, the following 	    race condition would be likely to exist in some cases:&lt;/p&gt;  	  &lt;ul&gt; 	    &lt;li&gt;NewChannels or Get(&amp;quot;Channels&amp;quot;) includes a property P with 	      value V1&lt;/li&gt; 	    &lt;li&gt;Client creates a proxy object for the channel&lt;/li&gt; 	    &lt;li&gt;The value of P changes to V2&lt;/li&gt; 	    &lt;li&gt;Client connects to PChanged signal&lt;/li&gt; 	    &lt;li&gt;Client should call Get(&amp;quot;P&amp;quot;) or GetAll here, to avoid the 	      race, but client&apos;s author has forgotten to do so&lt;/li&gt; 	    &lt;li&gt;Proxy object thinks P == V1, but actually P == V2&lt;/li&gt; 	  &lt;/ul&gt;  	  &lt;p&gt;We&apos;ve taken the opportunity to make the API encourage the 	    client author to get it right. Where possible, we intend that 	    properties whose value will be used in channel dispatching 	    or other &amp;quot;early&amp;quot; processing will be defined so that they are 	    immutable (can never change).&lt;/p&gt; 	&lt;/tp:rationale&gt;  	&lt;p&gt;Each dictionary MUST contain the keys 	  &lt;tp:dbus-ref&gt;org.freedesktop.Telepathy.Channel.ChannelType&lt;/tp:dbus-ref&gt;, 	  &lt;tp:dbus-ref&gt;org.freedesktop.Telepathy.Channel.TargetHandleType&lt;/tp:dbus-ref&gt;, 	  &lt;tp:dbus-ref&gt;org.freedesktop.Telepathy.Channel.TargetHandle&lt;/tp:dbus-ref&gt; 	  and 	  &lt;tp:dbus-ref&gt;org.freedesktop.Telepathy.Channel.TargetID&lt;/tp:dbus-ref&gt;. 	&lt;/p&gt; 	&lt;!-- FIXME: maybe also Requested, InitiatorHandle, 	InitiatorID once they leave the FUTURE pseudo-interface --&gt;  	&lt;tp:rationale&gt; 	  &lt;p&gt;We expect these to be crucial to the channel-dispatching 	    process.&lt;/p&gt; 	&lt;/tp:rationale&gt;
 *
 */
#define MC_STRUCT_TYPE_CHANNEL_DETAILS (mc_type_dbus_struct_oa_7bsv_7d ())

/**
 * MC_ARRAY_TYPE_CHANNEL_DETAILS_LIST:

 * Expands to a call to a function
 * that returns the #GType of a #GPtrArray
 * of #MC_STRUCT_TYPE_CHANNEL_DETAILS.
 */
#define MC_ARRAY_TYPE_CHANNEL_DETAILS_LIST (mc_type_dbus_array_oa_7bsv_7d ())

GType mc_type_dbus_struct_saa_7bsv_7das (void);

GType mc_type_dbus_struct_ays (void);

GType mc_type_dbus_struct_oa_7bsv_7d (void);

GType mc_type_dbus_array_saa_7bsv_7das (void);

GType mc_type_dbus_array_oa_7bsv_7d (void);

GType mc_type_dbus_array_of_a_7bua_28a_7bsv_7das_29_7d (void);

GType mc_type_dbus_array_of_a_7bsv_7d (void);

