import Element from './element';
import LineManger from './line-manger';
export default class Line extends Array<Element> {
    width: number;
    holdLefts: Element[];
    holdLeftWidth: number;
    overLeftHeight: number;
    holdRights: Element[];
    holdRightWidth: number;
    overRightHeight: number;
    lines: LineManger;
    constructor();
    append(element: Element): boolean;
    push(...elements: Element[]): number;
    get first(): Element;
    get last(): Element;
    /**
     * 已经使用的宽度
     */
    get usedWidth(): number;
    /**
     * 剩余的宽度
     */
    get restWidth(): number;
    /**
     * 浮动元素列表
     */
    get floats(): {
        left: Element[];
        right: Element[];
        all: Element[];
    };
    /**
     * 非绝对定位 元素列表
     */
    get flows(): Element[];
    /**
     * 行内元素分类
     */
    get absolutes(): Element[];
    /**
     * 非绝对定位 非浮动元素
     */
    get textFlows(): Element[];
    /**
     * 正常布局下的行高度
     * 排除 绝对定位\float元素 后其他元素的最大高度
     */
    get normalHeight(): number;
    /**
     * 浮动元素的高度
     */
    get floatHeight(): number;
    /**
     * 行内最大高度
     * 不包含绝对定位元素的高度 不包含 浮动元素高度
     */
    get height(): number;
    /**
     * 内容元素宽度 + float占据宽度综合 不包含绝对定位元素宽度
     * this.useWidth + floatWidth
     */
    get realWidth(): number;
}
