export interface IObjectHolder<DataType> {
    setObjectData(obj: DataType, config: any): this;
}
export interface INodesHolder {
    nodes: BaseElement[];
    setNode(node: BaseElement): this;
}
export interface ITextHolder {
    setText(text: string): this;
    text: string[];
}
export interface IStylesAndClasses {
    setStyle(styleStr: string): this;
    setClass(classStr: string): this;
    styles: string[];
    classes: string[];
}
export declare abstract class BaseElement {
    abstract getTypeAsString(): string;
    protected abstract fillResult(result: any[]): any;
    toList(): any[];
    static fillClassesPart(result: any[], elem: IStylesAndClasses): void;
    static fillTextPart(result: any[], elem: ITextHolder): void;
    static fillNodesPart(result: any[], elem: INodesHolder): void;
}
export declare class DivElement extends BaseElement implements IStylesAndClasses, INodesHolder, ITextHolder {
    getTypeAsString(): string;
    styles: string[];
    classes: string[];
    nodes: BaseElement[];
    text: string[];
    setText(text: string): this;
    setStyle(styleStr: string): this;
    setInlineBlockType(): this;
    setClass(classStr: string): this;
    setNode(node: BaseElement): this;
    protected fillResult(result: any[]): void;
    setColor(color: string): this;
}
export declare class SpanElement extends DivElement implements IStylesAndClasses, INodesHolder, ITextHolder {
    getTypeAsString(): string;
}
export declare class LiElement extends DivElement implements IStylesAndClasses, INodesHolder, ITextHolder {
    getTypeAsString(): string;
}
export declare class OlElement extends BaseElement implements IStylesAndClasses, INodesHolder {
    getTypeAsString(): string;
    styles: string[];
    classes: string[];
    nodes: BaseElement[];
    setStyle(styleStr: string): this;
    setClass(classStr: string): this;
    setNode(node: BaseElement): this;
    protected fillResult(result: any[]): void;
}
export declare class TableElement extends OlElement implements IStylesAndClasses, INodesHolder {
    getTypeAsString(): string;
}
export declare class TrElement extends OlElement implements IStylesAndClasses, INodesHolder {
    getTypeAsString(): string;
}
export declare class TdElement extends DivElement implements IStylesAndClasses, INodesHolder, ITextHolder {
    getTypeAsString(): string;
}
export declare class ObjectElement<DataType> extends BaseElement implements IObjectHolder<DataType> {
    getTypeAsString(): string;
    obj: DataType;
    config: any;
    setObjectData(obj: DataType, config: any): this;
    protected fillResult(result: any[]): void;
}
