sig
  class type t =
    object ('a)
      method add : 'Js.t -> Ext_data_Model.t Js.js_array Js.t Js.meth
      method addEvents : 'Js.t -> unit Js.meth
      method addFilter : 'Js.t -> bool Js.t Js.optdef -> unit Js.meth
      method addListener :
        'Js.t ->
        'Js.callback Js.optdef ->
        'Js.t Js.optdef -> 'Js.t Js.optdef -> 'Js.t Js.meth
      method addManagedListener :
        'Js.t ->
        'Js.t ->
        'Js.callback Js.optdef ->
        'Js.t Js.optdef -> 'Js.t Js.optdef -> 'Js.t Js.meth
      method addSorted : Ext_data_Model.t Js.t -> unit Js.meth
      method aggregate :
        'Js.callback ->
        'Js.t Js.optdef ->
        bool Js.t Js.optdef ->
        'Js.js_array Js.t Js.optdef -> 'Js.t Js.meth
      method average :
        Js.js_string Js.t -> bool Js.t Js.optdef -> 'Js.t Js.meth
      method callParent : 'Js.t -> 'Js.t Js.meth
      method callSuper : 'Js.t -> 'Js.t Js.meth
      method clearFilter : bool Js.t Js.optdef -> unit Js.meth
      method clearGrouping : unit Js.meth
      method clearListeners : unit Js.meth
      method clearManagedListeners : unit Js.meth
      method collect :
        Js.js_string Js.t ->
        bool Js.t Js.optdef ->
        bool Js.t Js.optdef -> 'Js.t Js.js_array Js.t Js.meth
      method commitChanges : unit Js.meth
      method count : bool Js.t Js.optdef -> Js.number Js.t Js.meth
      method currentPage : Js.number Js.t Js.prop
      method data : 'Js.t Js.prop
      method defaultProxyType : Js.js_string Js.t Js.prop
      method each : 'a1 Js.callback -> 'b1 Js.t Js.optdef -> unit Js.meth
      method enableBubble : 'c1 Js.t -> unit Js.meth
      method filter :
        'd1 Js.t Js.optdef -> Js.js_string Js.t Js.optdef -> unit Js.meth
      method filterBy : 'e1 Js.callback -> 'f1 Js.t Js.optdef -> unit Js.meth
      method filters : Ext_util_MixedCollection.t Js.t Js.prop
      method find :
        Js.js_string Js.t ->
        'g1 Js.t ->
        Js.number Js.t Js.optdef ->
        bool Js.t Js.optdef ->
        bool Js.t Js.optdef -> bool Js.t Js.optdef -> Js.number Js.t Js.meth
      method findBy :
        'h1 Js.callback ->
        'i1 Js.t Js.optdef ->
        Js.number Js.t Js.optdef -> Js.number Js.t Js.meth
      method findExact :
        Js.js_string Js.t ->
        'j1 Js.t -> Js.number Js.t Js.optdef -> Js.number Js.t Js.meth
      method findRecord :
        Js.js_string Js.t ->
        'k1 Js.t ->
        Js.number Js.t Js.optdef ->
        bool Js.t Js.optdef ->
        bool Js.t Js.optdef ->
        bool Js.t Js.optdef -> Ext_data_Model.t Js.t Js.meth
      method fireEvent : Js.js_string Js.t -> 'l1 Js.t -> bool Js.t Js.meth
      method fireEventArgs :
        Js.js_string Js.t -> 'm1 Js.t Js.js_array Js.t -> bool Js.t Js.meth
      method first : bool Js.t Js.optdef -> 'n1 Js.t Js.meth
      method generateComparator : unit Js.meth
      method getAt : Js.number Js.t -> Ext_data_Model.t Js.t Js.meth
      method getById : 'o1 Js.t -> Ext_data_Model.t Js.t Js.meth
      method getCount : Js.number Js.t Js.meth
      method getFirstSorter : Ext_util_Sorter.t Js.t Js.meth
      method getGroupString :
        Ext_data_Model.t Js.t -> Js.js_string Js.t Js.meth
      method getGroups : Js.js_string Js.t Js.optdef -> 'p1 Js.t Js.meth
      method getInitialConfig :
        Js.js_string Js.t Js.optdef -> 'q1 Js.t Js.meth
      method getModifiedRecords : Ext_data_Model.t Js.js_array Js.t Js.meth
      method getNewRecords : Ext_data_Model.t Js.js_array Js.t Js.meth
      method getPageFromRecordIndex :
        Js.number Js.t -> Js.number Js.t Js.meth
      method getProxy : #Ext_data_proxy_Proxy.t Js.t Js.meth
      method getRange :
        Js.number Js.t ->
        Js.number Js.t ->
        'r1 Js.t Js.optdef -> Ext_data_Model.t Js.js_array Js.t Js.meth
      method getRemovedRecords : Ext_data_Model.t Js.js_array Js.t Js.meth
      method getTotalCount : Js.number Js.t Js.meth
      method getUpdatedRecords : Ext_data_Model.t Js.js_array Js.t Js.meth
      method group : 's1 Js.t -> Js.js_string Js.t Js.optdef -> unit Js.meth
      method hasListener : Js.js_string Js.t -> bool Js.t Js.meth
      method hasListeners : 't1 Js.t Js.readonly_prop
      method indexOf : Ext_data_Model.t Js.t -> Js.number Js.t Js.meth
      method indexOfId : Js.js_string Js.t -> Js.number Js.t Js.meth
      method indexOfTotal : Ext_data_Model.t Js.t -> Js.number Js.t Js.meth
      method initConfig : 'u1 Js.t -> 'Js.t Js.meth
      method initSortable : unit Js.meth
      method insert :
        Js.number Js.t ->
        Ext_data_Model.t Js.js_array Js.t ->
        Ext_data_Model.t Js.js_array Js.t Js.meth
      method isDestroyed : bool Js.t Js.prop
      method isFiltered : bool Js.t Js.meth
      method isGrouped : bool Js.t Js.meth
      method isLoading : bool Js.t Js.meth
      method isObservable : bool Js.t Js.prop
      method isSortable : bool Js.t Js.prop
      method isStore : bool Js.t Js.prop
      method last : bool Js.t Js.optdef -> 'v1 Js.t Js.meth
      method load : 'w1 Js.t Js.optdef -> 'Js.t Js.meth
      method loadData : 'x1 Js.t -> bool Js.t Js.optdef -> unit Js.meth
      method loadPage : Js.number Js.t -> 'y1 Js.t Js.optdef -> unit Js.meth
      method loadRawData :
        'z1 Js.t Js.js_array Js.t -> bool Js.t Js.optdef -> unit Js.meth
      method loadRecords :
        Ext_data_Model.t Js.js_array Js.t -> 'a2 Js.t -> unit Js.meth
      method load_store : 'b2 Js.t Js.optdef -> unit Js.meth
      method max :
        Js.js_string Js.t -> bool Js.t Js.optdef -> 'c2 Js.t Js.meth
      method min :
        Js.js_string Js.t -> bool Js.t Js.optdef -> 'd2 Js.t Js.meth
      method mon :
        'e2 Js.t ->
        'f2 Js.t ->
        'g2 Js.callback Js.optdef ->
        'h2 Js.t Js.optdef -> 'i2 Js.t Js.optdef -> 'j2 Js.t Js.meth
      method mun :
        'k2 Js.t ->
        'l2 Js.t ->
        'm2 Js.callback Js.optdef -> 'n2 Js.t Js.optdef -> unit Js.meth
      method nextPage : 'o2 Js.t -> unit Js.meth
      method on :
        'p2 Js.t ->
        'q2 Js.callback Js.optdef ->
        'r2 Js.t Js.optdef -> 's2 Js.t Js.optdef -> 't2 Js.t Js.meth
      method prefetch : 'u2 Js.t Js.optdef -> unit Js.meth
      method prefetchPage :
        Js.number Js.t -> 'v2 Js.t Js.optdef -> unit Js.meth
      method prefetchRange : 'w2 Js.t -> 'x2 Js.t -> unit Js.meth
      method previousPage : 'y2 Js.t -> unit Js.meth
      method query :
        Js.js_string Js.t ->
        'z2 Js.t ->
        bool Js.t Js.optdef ->
        bool Js.t Js.optdef ->
        bool Js.t Js.optdef -> Ext_util_MixedCollection.t Js.t Js.meth
      method queryBy :
        'a3 Js.callback ->
        'b3 Js.t Js.optdef -> Ext_util_MixedCollection.t Js.t Js.meth
      method rejectChanges : unit Js.meth
      method relayEvents :
        'c3 Js.t ->
        Js.js_string Js.t Js.js_array Js.t ->
        Js.js_string Js.t Js.optdef -> 'd3 Js.t Js.meth
      method reload : 'e3 Js.t -> unit Js.meth
      method remove : 'f3 Js.t -> unit Js.meth
      method removeAll : unit Js.meth
      method removeAll_bool : bool Js.t Js.optdef -> unit Js.meth
      method removeAt :
        Js.number Js.t -> Js.number Js.t Js.optdef -> unit Js.meth
      method removeFilter : 'g3 Js.t -> bool Js.t Js.optdef -> unit Js.meth
      method removeListener :
        Js.js_string Js.t ->
        'h3 Js.callback -> 'i3 Js.t Js.optdef -> unit Js.meth
      method removeManagedListener :
        'j3 Js.t ->
        'k3 Js.t ->
        'l3 Js.callback Js.optdef -> 'm3 Js.t Js.optdef -> unit Js.meth
      method removed : Ext_data_Model.t Js.js_array Js.t Js.prop
      method resumeAutoSync : unit Js.meth
      method resumeEvent : Js.js_string Js.t -> unit Js.meth
      method resumeEvents : unit Js.meth
      method self : Ext_Class.t Js.t Js.prop
      method setProxy : 'n3 Js.t -> #Ext_data_proxy_Proxy.t Js.t Js.meth
      method snapshot : Ext_util_MixedCollection.t Js.t Js.prop
      method sort :
        'o3 Js.t Js.optdef ->
        Js.js_string Js.t Js.optdef ->
        Ext_util_Sorter.t Js.js_array Js.t Js.meth
      method sorters : 'p3 Js.t Js.prop
      method statics : Ext_Class.t Js.t Js.meth
      method sum :
        Js.js_string Js.t -> bool Js.t Js.optdef -> Js.number Js.t Js.meth
      method suspendAutoSync : unit Js.meth
      method suspendEvent : Js.js_string Js.t -> unit Js.meth
      method suspendEvents : bool Js.t -> unit Js.meth
      method sync : 'q3 Js.t Js.optdef -> 'Js.t Js.meth
      method un :
        Js.js_string Js.t ->
        'r3 Js.callback -> 's3 Js.t Js.optdef -> unit Js.meth
    end
  class type configs =
    object
      method autoDestroy : bool Js.t Js.prop
      method autoLoad : 'Js.t Js.prop
      method autoSync : bool Js.t Js.prop
      method batchUpdateMode : Js.js_string Js.t Js.prop
      method buffered : bool Js.t Js.prop
      method clearOnPageLoad : bool Js.t Js.prop
      method clearRemovedOnLoad : bool Js.t Js.prop
      method data : 'Js.t Js.prop
      method defaultSortDirection : Js.js_string Js.t Js.prop
      method fields : 'Js.t Js.js_array Js.t Js.prop
      method filterOnLoad : bool Js.t Js.prop
      method filters : 'Js.t Js.prop
      method groupDir : Js.js_string Js.t Js.prop
      method groupField : Js.js_string Js.t Js.prop
      method groupers : Ext_util_MixedCollection.t Js.t Js.prop
      method leadingBufferZone : Js.number Js.t Js.prop
      method listeners : 'Js.t Js.prop
      method model : Js.js_string Js.t Js.prop
      method pageSize : Js.number Js.t Js.prop
      method proxy : 'Js.t Js.prop
      method purgePageCount : Js.number Js.t Js.prop
      method remoteFilter : bool Js.t Js.prop
      method remoteGroup : bool Js.t Js.prop
      method remoteSort : bool Js.t Js.prop
      method sortOnFilter : bool Js.t Js.prop
      method sortOnLoad : bool Js.t Js.prop
      method sortRoot : Js.js_string Js.t Js.prop
      method sorters : 'Js.t Js.prop
      method statefulFilters : bool Js.t Js.prop
      method storeId : Js.js_string Js.t Js.prop
      method trailingBufferZone : Js.number Js.t Js.prop
    end
  class type events =
    object
      method add :
        (Ext_data_AbstractStore.t Js.t ->
         Ext_data_Model.t Js.js_array Js.t ->
         Js.number Js.t -> 'Js.t -> unit)
        Js.callback Js.writeonly_prop
      method beforeload :
        (Ext_data_AbstractStore.t Js.t ->
         Ext_data_Operation.t Js.t -> 'Js.t -> unit)
        Js.callback Js.writeonly_prop
      method beforeprefetch :
        (Ext_data_Store.t Js.t ->
         Ext_data_Operation.t Js.t -> 'Js.t -> unit)
        Js.callback Js.writeonly_prop
      method beforesync :
        ('Js.t -> 'Js.t -> unit) Js.callback Js.writeonly_prop
      method bulkremove :
        (Ext_data_AbstractStore.t Js.t ->
         Ext_data_Model.t Js.js_array Js.t ->
         Js.number Js.t Js.js_array Js.t -> bool Js.t -> 'Js.t -> unit)
        Js.callback Js.writeonly_prop
      method clear :
        (Ext_data_AbstractStore.t Js.t -> 'Js.t -> unit) Js.callback
        Js.writeonly_prop
      method datachanged :
        (Ext_data_AbstractStore.t Js.t -> 'Js.t -> unit) Js.callback
        Js.writeonly_prop
      method filterchange :
        (Ext_data_Store.t Js.t ->
         Ext_util_Filter.t Js.js_array Js.t -> 'Js.t -> unit)
        Js.callback Js.writeonly_prop
      method groupchange :
        (Ext_data_Store.t Js.t ->
         Ext_util_Grouper.t Js.js_array Js.t -> 'Js.t -> unit)
        Js.callback Js.writeonly_prop
      method load :
        (Ext_data_AbstractStore.t Js.t ->
         Ext_data_Model.t Js.js_array Js.t -> bool Js.t -> 'Js.t -> unit)
        Js.callback Js.writeonly_prop
      method metachange :
        (Ext_data_AbstractStore.t Js.t -> 'Js.t -> 'Js.t -> unit)
        Js.callback Js.writeonly_prop
      method prefetch :
        (Ext_data_Store.t Js.t ->
         Ext_data_Model.t Js.js_array Js.t ->
         bool Js.t -> Ext_data_Operation.t Js.t -> 'Js.t -> unit)
        Js.callback Js.writeonly_prop
      method refresh :
        (Ext_data_AbstractStore.t Js.t -> 'Js.t -> unit) Js.callback
        Js.writeonly_prop
      method remove :
        (Ext_data_AbstractStore.t Js.t ->
         Ext_data_Model.t Js.t ->
         Js.number Js.t -> bool Js.t -> 'Js.t -> unit)
        Js.callback Js.writeonly_prop
      method update :
        (Ext_data_AbstractStore.t Js.t ->
         Ext_data_Model.t Js.t ->
         Js.js_string Js.t ->
         Js.js_string Js.t Js.js_array Js.t -> 'Js.t -> unit)
        Js.callback Js.writeonly_prop
      method write :
        (Ext_data_AbstractStore.t Js.t ->
         Ext_data_Operation.t Js.t -> 'Js.t -> unit)
        Js.callback Js.writeonly_prop
    end
  class type statics =
    object
      method addMembers : 'Js.t -> unit Js.meth
      method addStatics : 'Js.t -> 'Js.t Js.meth
      method capture :
        'Js.t -> 'Js.callback -> 'Js.t Js.optdef -> unit Js.meth
      method create : 'Js.t Js.meth
      method createAlias : 'Js.t -> 'Js.t -> unit Js.meth
      method createComparator :
        Ext_util_Sorter.t Js.js_array Js.t -> 'Js.callback Js.meth
      method create_store : 'Js.t -> 'Js.t Js.meth
      method getName : Js.js_string Js.t Js.meth
      method observe : 'Js.callback -> 'Js.t -> unit Js.meth
      method releaseCapture : 'Js.t -> unit Js.meth
    end
  val of_configs : Ext_data_Store.configs Js.t -> Ext_data_Store.t Js.t
  val to_configs : Ext_data_Store.t Js.t -> Ext_data_Store.configs Js.t
end