declare namespace Ext { export namespace data { export interface ChainedStoreConfig { autoDestroy?: boolean; filters?: object[] | CallableFunction[]; groupDir?: string; grouper?: object | Ext.util.Grouper; groupField?: string; listeners?: object; pageSize?: number; remoteFilter?: boolean; remoteSort?: boolean; sorters?: Ext.util.Sorter[] | object[]; source?: Ext.data.Store | string; statefulFilters?: boolean; storeId?: string; } export class ChainedStore extends Ext.data.AbstractStore { public add(record?: Ext.data.Model[] | Ext.data.Model | object[] | object): Ext.data.Model[]; 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 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 getModel(): Ext.data.Model; public getSource(): 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 max(field?: string, grouped?: boolean): object; public min(field?: string, grouped?: boolean): object; 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 setSource(): void; public sum(field?: string, grouped?: boolean): number; } } }