import Component from "../interface/component"; /** * Shape * @class Shape * @param {Graphics} graphics - Graphics instance * @extends {Component} * @ignore */ export default class Shape extends Component { constructor(graphics: any); /** * Start to draw the shape on canvas * @ignore */ start(): void; /** * End to draw the shape on canvas * @ignore */ end(): void; /** * Set states of the current drawing shape * @ignore * @param {string} type - Shape type (ex: 'rect', 'circle') * @param {Object} [options] - Shape options * @param {(ShapeFillOption | string)} [options.fill] - {@link ShapeFillOption} or * Shape foreground color (ex: '#fff', 'transparent') * @param {string} [options.stoke] - Shape outline color * @param {number} [options.strokeWidth] - Shape outline width * @param {number} [options.width] - Width value (When type option is 'rect', this options can use) * @param {number} [options.height] - Height value (When type option is 'rect', this options can use) * @param {number} [options.rx] - Radius x value (When type option is 'circle', this options can use) * @param {number} [options.ry] - Radius y value (When type option is 'circle', this options can use) */ setStates(type: any, options: any): void; /** * Add the shape * @ignore * @param {string} type - Shape type (ex: 'rect', 'circle') * @param {Object} options - Shape options * @param {(ShapeFillOption | string)} [options.fill] - ShapeFillOption or Shape foreground color (ex: '#fff', 'transparent') or ShapeFillOption object * @param {string} [options.stroke] - Shape outline color * @param {number} [options.strokeWidth] - Shape outline width * @param {number} [options.width] - Width value (When type option is 'rect', this options can use) * @param {number} [options.height] - Height value (When type option is 'rect', this options can use) * @param {number} [options.rx] - Radius x value (When type option is 'circle', this options can use) * @param {number} [options.ry] - Radius y value (When type option is 'circle', this options can use) * @param {number} [options.isRegular] - Whether scaling shape has 1:1 ratio or not * @returns {Promise} */ add(type: any, options: any): Promise; /** * Change the shape * @ignore * @param {fabric.Object} shapeObj - Selected shape object on canvas * @param {Object} options - Shape options * @param {(ShapeFillOption | string)} [options.fill] - {@link ShapeFillOption} or * Shape foreground color (ex: '#fff', 'transparent') * @param {string} [options.stroke] - Shape outline color * @param {number} [options.strokeWidth] - Shape outline width * @param {number} [options.width] - Width value (When type option is 'rect', this options can use) * @param {number} [options.height] - Height value (When type option is 'rect', this options can use) * @param {number} [options.rx] - Radius x value (When type option is 'circle', this options can use) * @param {number} [options.ry] - Radius y value (When type option is 'circle', this options can use) * @param {number} [options.isRegular] - Whether scaling shape has 1:1 ratio or not * @returns {Promise} */ change(shapeObj: any, options: any): Promise; /** * make fill property for user event * @param {fabric.Object} shapeObj - fabric object * @returns {Object} */ makeFillPropertyForUserEvent(shapeObj: any): {}; /** * Copy object handling. * @param {fabric.Object} shapeObj - Shape object * @param {fabric.Object} originalShapeObj - Shape object */ processForCopiedObject(shapeObj: any, originalShapeObj: any): void; /** * Create the instance of shape * @param {string} type - Shape type * @param {Object} options - Options to creat the shape * @returns {fabric.Object} Shape instance * @private */ _createInstance(type: any, options: any): any; /** * Get the options to create the shape * @param {Object} options - Options to creat the shape * @returns {Object} Shape options * @private */ _extendOptions(options: any): any; /** * Bind fabric events on the creating shape object * @param {fabric.Object} shapeObj - Shape object * @private */ _bindEventOnShape(shapeObj: any): void; /** * MouseDown event handler on canvas * @param {{target: fabric.Object, e: MouseEvent}} fEvent - Fabric event object * @private */ _onFabricMouseDown(fEvent: any): void; /** * MouseDown event handler on canvas * @param {{target: fabric.Object, e: MouseEvent}} fEvent - Fabric event object * @private */ _onFabricMouseMove(fEvent: any): void; /** * MouseUp event handler on canvas * @private */ _onFabricMouseUp(): void; /** * Keydown event handler on document * @param {KeyboardEvent} e - Event object * @private */ _onKeyDown(e: any): void; /** * Keyup event handler on document * @param {KeyboardEvent} e - Event object * @private */ _onKeyUp(e: any): void; /** * Reset shape position and internal proportions in the filter type fill area. * @param {fabric.Object} shapeObj - Shape object * @private */ _resetPositionFillFilter(shapeObj: any): void; /** * Reset filter area position within group selection. * @param {fabric.Object} shapeObj - Shape object * @param {fabric.ActiveSelection} activeSelection - Shape object * @private */ _fillFilterRePositionInGroupSelection(shapeObj: any, activeSelection: any): void; }