import { BrsValue, ValueKind, BrsString, BrsBoolean, BrsInvalid } from "../BrsType";
import { BrsComponent, BrsIterable } from "./BrsComponent";
import { BrsType } from "..";
import { Callable } from "../Callable";
import { RoAssociativeArray } from "./RoAssociativeArray";
import { RoList } from "./RoList";
import { RoXMLList } from "./RoXMLList";
import { XmlElement } from "xmldoc";
export declare class RoXMLElement extends BrsComponent implements BrsValue, BrsIterable {
    readonly kind = ValueKind.Object;
    private xmlElement;
    constructor(parsedXML?: XmlElement);
    private static createElement;
    private static syncDerivedState;
    private static getTextFromElement;
    private static replaceTextContent;
    private static appendTextContent;
    private static validateXml;
    private getElement;
    toString(parent?: BrsType): string;
    equalTo(other: BrsType): BrsBoolean;
    getElements(): BrsType[];
    get(index: BrsType): Callable | RoXMLList;
    set(index: BrsType, value: BrsType): BrsInvalid;
    hasNext(): BrsBoolean;
    getNext(): BrsType;
    resetNext(): void;
    updateNext(): void;
    getAttribute(index: BrsType): BrsString | BrsInvalid;
    attributes(): RoAssociativeArray;
    name(): BrsString;
    text(): BrsString;
    childElements(): RoXMLList;
    childNodes(): RoList;
    namedElements(name: string, ci: boolean): RoXMLList;
    /** Parse a string of XML. Returns true if successful. In that case, XML elements are available using other methods */
    private readonly parse;
    /** Returns the body of the element. If the element contains child elements, */
    /** returns an roXMLList representing those elements, like GetChildElements(). */
    /** If there are no children but the element contains text, returns an roString like GetText(). */
    /** If the element is empty, GetBody() returns invalid */
    private readonly getBody;
    /** Returns an roXMLList of child elements. If there are no child elements, returns invalid.  */
    private readonly getChildElements;
    /** Returns an roXMLList of child elements. If there are no child elements, returns invalid. */
    private readonly getChildNodes;
    /** Returns an roXMLList representing all child elements of this element whose name is specified. */
    private readonly getNamedElements;
    /** Same as GetNamedElements except the name matching is case-insensitive. */
    private readonly getNamedElementsCi;
    /** Returns an Associative Array representing the XML attributes of the element */
    private readonly getAttributes;
    /** Returns the name of the element */
    private readonly getName;
    /** Returns any text contained in the element. */
    private readonly getText;
    /** Returns true if the element has the specified name. */
    private readonly isName;
    /** Returns true if the element has the specified attribute. */
    private readonly hasAttribute;
    /** Sets the element text from the specified string. */
    private readonly setBody;
    /** Adds text to the element body. */
    private readonly addText;
    /** Adds an new empty child element and returns it. */
    private readonly addBodyElement;
    /** Adds a new child element with the specified name and returns the new element. */
    private readonly addElement;
    /** Adds a new child element with the specified name and text from the specified body string, and returns the new element. */
    private readonly addElementWithBody;
    /** Adds an attribute value to the element. */
    private readonly addAttribute;
    /** Sets the name of the element. */
    private readonly setName;
    /** Serializes the element to XML document text. */
    private readonly genXMLHdr;
    /** Serializes the element to XML document text. */
    private readonly genXML;
    /** Removes all sub-elements and clear the name of the element */
    private readonly clear;
}
