/// <reference types="jquery" />
/// <reference types="jquery" />
import WorkspaceElement from './WorkspaceElement';
import WorkspacePeer from './peer/svg/WorkspacePeer';
import PositionType from './PositionType';
import StyleAttributes from './StyleAttributes';
declare class Workspace extends WorkspaceElement<WorkspacePeer> {
    private _htmlContainer;
    constructor(attributes?: StyleAttributes);
    getType(): string;
    /**
     * Appends an element as a child to the object.
     */
    append(element: WorkspaceElement<any>): void;
    addItAsChildTo(element: JQuery<HTMLDivElement>): void;
    /**
     * Create a new div element that will be responsible for containing the workspace elements.
     */
    static _createDivContainer(): HTMLElement;
    /**
     *  Set the workspace area size. It can be defined using different units:
     * in (inches; 1in=2.54cm)
     * cm (centimeters; 1cm=10mm)
     * mm (millimeters)
     * pt (points; 1pt=1/72in)
     * pc (picas; 1pc=12pt)
     */
    setSize(width: string | number, height: string | number): void;
    /**
     * The workspace element is a containing blocks for this content
     * - they define a CSS2 "block level box".
     * Inside the containing block a local coordinate system is
     * defined for any sub-elements using the coordsize and coordorigin attributes.
     * All CSS2 positioning information is expressed in terms of this local coordinate space.
     * Consequently CSS2 position attributes (left, top, width, height
     * and so on) have no unit specifier -
     * they are simple numbers, not CSS length quantities.
     */
    setCoordSize(width: number | string, height: number | string): void;
    setCoordOrigin(x: number, y: number): void;
    /**
     * @Todo: Complete Doc
     */
    getCoordOrigin(): PositionType;
    /**
     * All the SVG elements will be children of this HTML element.
     */
    _getHtmlContainer(): HTMLElement;
    setFill(color: string, opacity: number): void;
    getSize(): {
        width: string;
        height: string;
    };
    setStroke(width: number, style: string, color: string, opacity: number): void;
    getCoordSize(): {
        width: number;
        height: number;
    };
    /**
     * Remove an element as a child to the object.
     */
    removeChild(element: WorkspaceElement<any>): void;
    getSVGElement(): Element;
}
export default Workspace;
