declare namespace Ext { export namespace selection { export interface ModelConfig { allowDeselect?: boolean; ignoreRightMouseSelection?: boolean; listeners?: object; mode?: "SINGLE" | "SIMPLE" | "MULTI"; pruneRemoved?: boolean; toggleOnClick?: boolean; } export class Model extends Ext.mixin.Observable { public isSelectionModel?: boolean; public beforeViewRender(view?: Ext.view.View): void; public bindComponent(): void; public deselect(records?: Ext.data.Model[] | number, suppressEvent?: boolean): void; public deselectAll(suppressEvent?: boolean): void; public deselectRange(startRow?: Ext.data.Model | number, endRow?: Ext.data.Model | number): void; public getCount(): number; public getSelection(): Ext.data.Model[]; public getSelectionMode(): string; public getStore(): void; public hasSelection(): boolean; public isLocked(): boolean; public isRangeSelected(from?: Ext.data.Model | number, to?: Ext.data.Model | number): boolean; public isSelected(record?: Ext.data.Model | number): boolean; public onEditorKey(): void; public onHeaderClick(): void; public onSelectChange(record?: object, isSelected?: object, suppressEvent?: object, commitFn?: object): void; public select(records?: Ext.data.Model[] | number, keepExisting?: boolean, suppressEvent?: boolean): void; public selectAll(suppressEvent?: boolean): void; public selectRange(startRow?: Ext.data.Model | number, endRow?: Ext.data.Model | number, keepExisting?: boolean): void; public setLocked(locked?: boolean): void; public setSelectionMode(selMode?: string): void; public setStore(store?: object): void; } } }