import { DrawingElement } from '../elements/drawing-element';
import { Size } from '../../primitives/size';
import { PointModel } from '../../primitives/point-model';
import { PdfAnnotationType } from '../../../drawing';
/**
 * @hidden
 * Container module is used to group related objects
 */
export declare class Container extends DrawingElement {
    /**
     * Gets/Sets the collection of child elements
     */
    children: DrawingElement[];
    private desiredBounds;
    /** @private */
    measureChildren: boolean;
    /** @private */
    thickness?: number;
    /** @private */
    isSharpEdge?: boolean;
    /** @private */
    annotationType?: PdfAnnotationType;
    /**
     * returns whether the container has child elements or not
     *
     * @private
     * @returns {boolean} - boolean
     */
    hasChildren(): boolean;
    /**   @private  */
    prevRotateAngle: number;
    /**
     * Measures the minimum space that the container requires
     *
     * @param {Size} availableSize - availableSize
     * @private
     * @returns {Size} - Size
     */
    measure(availableSize: Size): Size;
    /**
     * Arranges the container and its children
     *
     * @param {Size} desiredSize - desiredSize
     * @private
     * @returns {Size} - Size
     */
    arrange(desiredSize: Size): Size;
    /**
     * Stretches the child elements based on the size of the container
     *
     * @param {Size} size - size
     * @private
     * @returns {void} - void
     */
    protected stretchChildren(size: Size): void;
    /**
     * Finds the offset of the child element with respect to the container
     *
     * @param {DrawingElement} child - child
     * @param {PointModel} center - center
     * @private
     * @returns {void} - void
     */
    protected findChildOffsetFromCenter(child: DrawingElement, center: PointModel): void;
    private GetChildrenBounds;
}
