+void client_setup_decor_and_functions(ObClient *self);
+
+/*! Retrieves the window's type and sets ObClient->type */
+void client_get_type(ObClient *self);
+
+const ObClientIcon *client_icon(ObClient *self, gint w, gint h);
+
+/*! Searches a client's direct parents for a focused window. The function does
+ not check for the passed client, only for *ONE LEVEL* of its parents.
+ If no focused parentt is found, NULL is returned.
+*/
+ObClient *client_search_focus_parent(ObClient *self);
+
+/*! Searches a client's transients for a focused window. The function does not
+ check for the passed client, only for its transients.
+ If no focused transient is found, NULL is returned.
+*/
+ObClient *client_search_focus_tree(ObClient *self);
+
+/*! Searches a client's transient tree for a focused window. The function
+ searches up the tree and down other branches as well as the passed client's.
+ If no focused client is found, NULL is returned.
+*/
+ObClient *client_search_focus_tree_full(ObClient *self);
+
+/*! Return a modal child of the client window that can be focused.
+ @return A modal child of the client window that can be focused, or 0 if
+ none was found.
+*/
+ObClient *client_search_modal_child(ObClient *self);
+
+ObClient *client_search_top_transient(ObClient *self);
+
+/*! Search for a parent of a client. This only searches up *ONE LEVEL*, and
+ returns the searched for parent if it is a parent, or NULL if not. */
+ObClient *client_search_parent(ObClient *self, ObClient *search);
+
+/*! Search for a transient of a client. The transient is returned if it is one,
+ NULL is returned if the given search is not a transient of the client. */
+ObClient *client_search_transient(ObClient *self, ObClient *search);
+
+/*! Return the "closest" client in the given direction */
+ObClient *client_find_directional(ObClient *c, ObDirection dir);
+
+/*! Return the closest edge in the given direction */
+gint client_directional_edge_search(ObClient *c, ObDirection dir, gboolean hang);
+
+/*! Set a client window to be above/below other clients.
+ @layer < 0 indicates the client should be placed below other clients.<br>
+ = 0 indicates the client should be placed with other clients.<br>
+ > 0 indicates the client should be placed above other clients.
+*/
+void client_set_layer(ObClient *self, gint layer);
+
+/*! Set a client window to have decorations or not */
+void client_set_undecorated(ObClient *self, gboolean undecorated);
+
+guint client_monitor(ObClient *self);
+
+void client_update_sm_client_id(ObClient *self);