///
///
///
/**
* Extends {@link mxShape} to implement a double ellipse shape.
*
* This shape is registered under {@link mxConstants.SHAPE_DOUBLE_ELLIPSE} in {@link mxCellRenderer}.
*
* Use the following override to only fill the inner ellipse in this shape:
* @example
* ```javascript
* mxDoubleEllipse.prototype.paintVertexShape = function(c, x, y, w, h)
* {
* c.ellipse(x, y, w, h);
* c.stroke();
*
* var inset = mxUtils.getValue(this.style, mxConstants.STYLE_MARGIN, Math.min(3 + this.strokewidth, Math.min(w / 5, h / 5)));
* x += inset;
* y += inset;
* w -= 2 * inset;
* h -= 2 * inset;
*
* if (w > 0 && h > 0)
* {
* c.ellipse(x, y, w, h);
* }
*
* c.fillAndStroke();
* };
* ```
*/
declare class mxDoubleEllipse extends mxShape {
/**
* Constructs a new ellipse shape.
*
* @param bounds {@link mxRectangle} that defines the bounds. This is stored in {@link mxShape.bounds}.
* @param fill String that defines the fill color. This is stored in {@link mxShape.fill}.
* @param stroke String that defines the stroke color. This is stored in {@link mxShape.stroke}.
* @param strokewidth Optional integer that defines the stroke width. Default is 1. This is stored in {@link mxShape.strokewidth}.
*/
constructor(bounds: mxRectangle, fill: string, stroke: string, strokewidth?: number);
/**
* Scale for improving the precision of VML rendering.
* @default `10`
*/
mxDoubleEllipse: number;
/**
* Paints the background.
*/
paintBackground(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
/**
* Paints the foreground.
*/
paintForeground(c: mxAbstractCanvas2D, x: number, y: number, w: number, h: number): void;
/**
* @returns the bounds for the label.
*/
getLabelBounds(rect: mxRectangle): mxRectangle;
}