declare namespace Ext { export namespace draw { export interface SurfaceConfig { background?: object; baseCls?: string | boolean; bind?: object | string; border?: boolean; cls?: string | string[]; controller?: string | object | Ext.app.ViewController; defaultListenerScope?: boolean; dirty?: boolean; flipRtlText?: boolean; height?: number | string; hidden?: boolean; items?: []; listeners?: object; plugins?: object | string | object[] | string[]; publishes?: string | string[] | object; rect?: []; reference?: string; session?: boolean | object | Ext.data.Session; style?: string | object; touchAction?: object; twoWayBindable?: string | string[] | object; ui?: string | string[]; userCls?: string | string[]; viewModel?: string | object | Ext.app.ViewModel; width?: number | string; } export class Surface extends Ext.draw.SurfaceBase { public devicePixelRatio?: any; public add(sprite?: object | object[]): Ext.draw.sprite.Sprite | Ext.draw.sprite.Sprite[]; public clear(): void; public flatten(size?: object, surfaces?: Ext.draw.Surface[]): object; public get(id?: string | number): Ext.draw.sprite.Sprite; public getBBox(sprites?: Ext.draw.sprite.Sprite[] | Ext.draw.sprite.Sprite, isWithoutTransform?: boolean): void; public getBackground(): void; public getDirty(): void; public getFlipRtlText(): void; public getItems(): void; public getRect(): void; public hitTest(point?: [], options?: object): object; public hitTestEvent(event?: object, options?: object): object; public onAdd(sprite?: Ext.draw.sprite.Sprite): void; public remove(sprite?: Ext.draw.sprite.Sprite | string, isDestroy?: boolean): Ext.draw.sprite.Sprite; public removeAll(isDestroy?: boolean): void; public renderFrame(): void; public repaint(): void; public resetTransform(): void; public roundPixel(num?: number): number; public setBackground(): void; public setDirty(): void; public setFlipRtlText(): void; public setItems(): void; public setRect(): void; public waitFor(surface?: Ext.draw.Surface): void; public static stableSort(list?: []): []; } } }