sig
  val cast : 'Gobject.obj -> Gtk.file_chooser Gobject.obj
  module P :
    sig
      val action :
        ([> `filechooser ], GtkEnums.file_chooser_action) Gobject.property
      val create_folders : ([> `filechooser ], bool) Gobject.property
      val extra_widget :
        ([> `filechooser ], Gtk.widget Gobject.obj) Gobject.property
      val filter :
        ([> `filechooser ], Gtk.file_filter Gtk.obj) Gobject.property
      val local_only : ([> `filechooser ], bool) Gobject.property
      val preview_widget :
        ([> `filechooser ], Gtk.widget Gobject.obj) Gobject.property
      val preview_widget_active : ([> `filechooser ], bool) Gobject.property
      val select_multiple : ([> `filechooser ], bool) Gobject.property
      val show_hidden : ([> `filechooser ], bool) Gobject.property
      val use_preview_label : ([> `filechooser ], bool) Gobject.property
      val do_overwrite_confirmation :
        ([> `filechooser ], bool) Gobject.property
    end
  module S :
    sig
      val current_folder_changed :
        ([> `filechooser ], unit -> unit) GtkSignal.t
      val file_activated : ([> `filechooser ], unit -> unit) GtkSignal.t
      val selection_changed : ([> `filechooser ], unit -> unit) GtkSignal.t
      val update_preview : ([> `filechooser ], unit -> unit) GtkSignal.t
      val confirm_overwrite :
        ([> `filechooser ], unit -> GtkEnums.file_chooser_confirmation)
        GtkSignal.t
    end
end