declare namespace Ext { export namespace draw { export namespace engine { export interface CanvasConfig { 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; highPrecision?: 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 Canvas extends Ext.draw.Surface { public appendPath(path?: object): void; public arc(x?: object, y?: object, radius?: object, startAngle?: object, endAngle?: object, anticlockwise?: object): void; public arcTo(x1?: object, y1?: object, x2?: object, y2?: object, radius?: object): void; public bezierCurveTo(c1x?: object, c1y?: object, c2x?: object, c2y?: object, x?: object, y?: object): any; public clearRect(x?: object, y?: object, w?: object, h?: object): void; public clearTransform(): void; public createLinearGradient(x0?: object, y0?: object, x1?: object, y1?: object): any; public createRadialGradient(x0?: object, y0?: object, r0?: object, x1?: object, y1?: object, r1?: object): any; public drawImage(img_elem?: object, arg1?: object, arg2?: object, arg3?: object, arg4?: object, dst_x?: object, dst_y?: object, dw?: object, dh?: object): any; public ellipse(cx?: object, cy?: object, rx?: object, ry?: object, rotation?: object, start?: object, end?: object, anticlockwise?: object): void; public fill(): void; public fillRect(x?: object, y?: object, w?: object, h?: object): void; public fillStroke(attr?: object, transformFillStroke?: object): void; public fillText(text?: object, x?: object, y?: object, maxWidth?: object): void; public getHighPrecision(): void; public lineTo(x?: object, y?: object): void; public moveTo(x?: object, y?: object): void; public quadraticCurveTo(cx?: object, cy?: object, x?: object, y?: object): any; public rect(x?: object, y?: object, w?: object, h?: object): any; public restore(): void; public rotate(radians?: object): any; public save(): void; public scale(sx?: object, sy?: object): any; public setGradientBBox(bbox?: object): void; public setHighPrecision(): void; public setLineDash(dashList?: object): void; public setTransform(x2x?: object, x2y?: object, y2x?: object, y2y?: object, newDx?: object, newDy?: object): void; public stroke(): void; public strokeRect(x?: object, y?: object, w?: object, h?: object): void; public strokeText(text?: object, x?: object, y?: object, maxWidth?: object): void; public transform(x2x?: object, x2y?: object, y2x?: object, y2y?: object, newDx?: object, newDy?: object): void; public translate(dx?: object, dy?: object): any; public updatePrecisionCompensate(): void; public updatePrecisionCompensateRect(): void; public updateRect(rect?: object): void; } } } }