import { DrawingElement } from '../core/elements/drawing-element';
import { PathElement } from '../core/elements/path-element';
import { TextElement } from '../core/elements/text-element';
import { Container } from '../core/containers/container';
import { BaseAttributes } from './canvas-interface';
import { CanvasRenderer } from './canvas-renderer';
import { ImageElement } from '../core/elements/image-element';
/**
 * @hidden
 * Renderer module is used to render basic diagram elements
 */
export declare class DrawingRenderer {
    /**   @private  */
    renderer: CanvasRenderer;
    private diagramId;
    /** @private */
    adornerSvgLayer: SVGSVGElement;
    /** @private */
    isSvgMode: Boolean;
    /** @private */
    private element;
    freeTextMaxHeight: number;
    rectHeight: number;
    isFreeTextAnnotation: boolean;
    isStampAnnotation: boolean;
    zoomFactor: number;
    constructor(name: string, isSvgMode: Boolean);
    /**
     * @param {DrawingElement} element - element
     * @param {HTMLCanvasElement | SVGElement} canvas - canvas
     * @param {HTMLElement} htmlLayer - htmlLayer
     * @param {Transforms} transform - transform
     * @param {SVGSVGElement} parentSvg - parentSvg
     * @param {boolean} createParent - createParent
     * @param {boolean} fromPalette - fromPalette
     * @param {number} indexValue - indexValue
     * @param {boolean} annotationCallback - annotationCallback
     * @param {string} annotationType - annotationType
     * @private
     * @returns {void} - void
     */
    renderElement(element: DrawingElement, canvas: HTMLCanvasElement | SVGElement, htmlLayer: HTMLElement, transform?: Transforms, parentSvg?: SVGSVGElement, createParent?: boolean, fromPalette?: boolean, indexValue?: number, annotationCallback?: (annotationID: string) => boolean, annotationType?: string): void;
    /**
     * @param {ImageElement} element - element
     * @param {HTMLCanvasElement | SVGElement} canvas - canvas
     * @param {Transforms} transform - transform
     * @param {SVGSVGElement} parentSvg - parentSvg
     * @param {boolean} fromPalette - fromPalette
     * @param {boolean} annotationCallback - annotationCallback
     * @param {string} annotationType - annotationType
     * @private
     * @returns {void} - void
     */
    renderImageElement(element: ImageElement, canvas: HTMLCanvasElement | SVGElement, transform?: Transforms, parentSvg?: SVGSVGElement, fromPalette?: boolean, annotationCallback?: (annotationID: string) => boolean, annotationType?: string): void;
    /**
     * @param {PathElement} element - element
     * @param {HTMLCanvasElement | SVGElement} canvas - canvas
     * @param {Transforms} transform - transform
     * @param {SVGSVGElement} parentSvg - parentSvg
     * @param {boolean} fromPalette - fromPalette
     * @private
     * @returns {void} - void
     */
    renderPathElement(element: PathElement, canvas: HTMLCanvasElement | SVGElement, transform?: Transforms, parentSvg?: SVGSVGElement, fromPalette?: boolean): void;
    /**
     * @param {TextElement} element - element
     * @param {HTMLCanvasElement | SVGElement} canvas - canvas
     * @param {Transforms} transform - transform
     * @param {SVGSVGElement} parentSvg - parentSvg
     * @param {boolean} fromPalette - fromPalette
     * @private
     * @returns {void} - void
     */
    renderTextElement(element: TextElement, canvas: HTMLCanvasElement | SVGElement, transform?: Transforms, parentSvg?: SVGSVGElement, fromPalette?: boolean): void;
    /**
     * @param {Container} group - group
     * @param {HTMLCanvasElement | SVGElement} canvas - canvas
     * @param {HTMLElement} htmlLayer - htmlLayer
     * @param {Transforms} transform - transform
     * @param {SVGSVGElement} parentSvg - parentSvg
     * @param {boolean} createParent - createParent
     * @param {boolean} fromPalette - fromPalette
     * @param {number} indexValue - indexValue
     * @param {boolean} annotationCallback - annotationCallback
     * @param {string} annotationType - annotationType
     * @private
     * @returns {void} - void
     */
    renderContainer(group: Container, canvas: HTMLCanvasElement | SVGElement, htmlLayer: HTMLElement, transform?: Transforms, parentSvg?: SVGSVGElement, createParent?: boolean, fromPalette?: boolean, indexValue?: number, annotationCallback?: (annotationID: string) => boolean, annotationType?: string): void;
    /**
     * @param {DrawingElement} element - element
     * @param {HTMLCanvasElement | SVGElement} canvas - canvas
     * @param {Transforms} transform - transform
     * @param {SVGSVGElement} parentSvg - parentSvg
     * @private
     * @returns {void} - void
     */
    renderRect(element: DrawingElement, canvas: HTMLCanvasElement | SVGElement, transform?: Transforms, parentSvg?: SVGSVGElement): void;
    /**
     * @param {Container} element - element
     * @param {Transforms} transform - transform
     * @private
     * @returns {BaseAttributes} - BaseAttributes
     */
    getBaseAttributes(element: DrawingElement, transform?: Transforms): BaseAttributes;
}
/**
 * @hidden
 * Transforms interface
 */
interface Transforms {
    tx: number;
    ty: number;
    scale: number;
}
export {};
