declare namespace Ext { export namespace data { export interface StoreConfig { asynchronousLoad?: boolean; autoDestroy?: boolean; autoLoad?: boolean | object; autoSync?: boolean; batchUpdateMode?: string; clearOnPageLoad?: boolean; clearRemovedOnLoad?: boolean; data?: object[] | Ext.data.Model[]; fields?: object[] | string[]; filters?: object[] | CallableFunction[]; groupDir?: string; grouper?: object | Ext.util.Grouper; groupField?: string; listeners?: object; model?: string | Ext.data.Model; pageSize?: number; proxy?: string | Ext.data.proxy.Proxy | object; remoteFilter?: boolean; remoteSort?: boolean; session?: Ext.data.Session; sorters?: Ext.util.Sorter[] | object[]; sortOnLoad?: boolean; statefulFilters?: boolean; storeId?: string; trackRemoved?: boolean; } export class Store extends Ext.data.ProxyStore { public loadCount?: number; public add(record?: Ext.data.Model[] | Ext.data.Model | object[] | object): Ext.data.Model[]; public addSorted(record?: Ext.data.Model): void; public aggregate(fn?: CallableFunction, scope?: object, grouped?: boolean, field?: string): object; public average(field?: string, grouped?: boolean): object; public collect(property?: string, includeOptions?: object, filtered?: boolean): object[]; public commitChanges(): void; public constructor(config?: object); public count(grouped?: boolean): number; public each(fn?: CallableFunction, scope?: object, includeOptions?: object | boolean): void; public first(grouped?: boolean): Ext.data.Model | undefined; public getByInternalId(internalId?: any): Ext.data.Model; public getClearOnPageLoad(): void; public getClearRemovedOnLoad(): void; public getData(): void; public getSession(): void; public indexOf(record?: Ext.data.Model): number; public indexOfId(id?: string): number; public insert(index?: number, records?: Ext.data.Model | Ext.data.Model[] | object | object[]): Ext.data.Model[]; public last(grouped?: boolean): Ext.data.Model | undefined; public loadData(data?: Ext.data.Model[] | object[], append?: boolean): void; public loadPage(page?: number, options?: object): void; public loadRawData(data?: object[], append?: boolean): boolean; public loadRecords(records?: Ext.data.Model[], options?: object): void; public max(field?: string, grouped?: boolean): object; public min(field?: string, grouped?: boolean): object; public nextPage(options?: object): void; public onProxyLoad(operation?: object): void; public previousPage(options?: object): void; public query(property?: string, value?: string | RegExp, anyMatch?: boolean, caseSensitive?: boolean, exactMatch?: boolean): Ext.util.Collection; public queryBy(fn?: CallableFunction, scope?: object): Ext.util.Collection; public rejectChanges(): void; public remove(records?: Ext.data.Model | Ext.data.Model[] | number | number[]): void; public removeAt(index?: number, count?: number): void; public setClearOnPageLoad(): void; public setClearRemovedOnLoad(): void; public setData(data?: Ext.data.Model[] | object[]): void; public setSession(): void; public sum(field?: string, grouped?: boolean): number; } } }