/**
 * Copyright 2015 Mozilla Foundation
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { ASObject } from '../nat/ASObject';
export declare class XMLNode extends ASObject {
    constructor(type: number, value: string);
    static escapeXML(value: string): string;
    nodeType: number;
    previousSibling: XMLNode;
    nextSibling: XMLNode;
    parentNode: XMLNode;
    firstChild: XMLNode;
    lastChild: XMLNode;
    childNodes: any[];
    _childNodes: any[];
    attributes: ASObject;
    _attributes: ASObject;
    nodeName: string;
    nodeValue: string;
    init: (type: number, value: string) => void;
    hasChildNodes: () => boolean;
    cloneNode: (deep: boolean) => XMLNode;
    removeNode: () => void;
    insertBefore: (node: XMLNode, before: XMLNode) => void;
    appendChild: (node: XMLNode) => void;
    getNamespaceForPrefix: (prefix: string) => string;
    getPrefixForNamespace: (ns: string) => string;
    localName: string;
    prefix: string;
    namespaceURI: string;
}
export declare class XMLDocument extends XMLNode {
    constructor(text?: string);
    xmlDecl: ASObject;
    docTypeDecl: ASObject;
    idMap: ASObject;
    ignoreWhite: boolean;
    createElement: (name: string) => XMLNode;
    createTextNode: (text: string) => XMLNode;
    parseXML: (source: string) => void;
}
export declare class XMLTag extends ASObject {
    constructor();
    private _type;
    private _value;
    private _empty;
    private _attrs;
    get type(): number;
    set type(value: number);
    get empty(): boolean;
    set empty(value: boolean);
    get value(): string;
    set value(v: string);
    get attrs(): ASObject;
    set attrs(value: ASObject);
}
export declare class XMLNodeType extends ASObject {
    constructor();
}
export declare class XMLParser extends ASObject {
    constructor();
    private queue;
    startParse(source: string, ignoreWhite: boolean): void;
    getNext(tag: XMLTag): number;
}
//# sourceMappingURL=xml-document.d.ts.map