/**
 * Defines a position within string, in line and column form.
 */
export interface Position {
    /**
     * The line number. The first line is at index 1.
     */
    line: number;
    /**
     * The column number. The first character is at index 1.
     */
    column: number;
}
/**
 * Specifies the type of parser event.
 */
export declare class ParserEventType {
    /**
     * Specifies the StartElement event type.
     */
    static StartElement: string;
    /**
     * Specifies the EndElement event type.
     */
    static EndElement: string;
    /**
     * Specifies the Text event type.
     */
    static Text: string;
    /**
     * Specifies the CDATA event type.
     */
    static CDATA: string;
    /**
     * Specifies the Comment event type.
     */
    static Comment: string;
}
/**
 * Provides information for a parser event.
 */
export declare class ParserEvent {
    private _eventType;
    private _position;
    private _prefix;
    private _namespace;
    private _elementName;
    private _attributes;
    private _data;
    constructor(eventType: string, position: Position, prefix?: string, namespace?: string, elementName?: string, attributes?: Object, data?: string);
    /**
     * Returns a JSON string representation of this instance.
     */
    toString(): string;
    /**
     * Returns the type of the parser event. This is one of the ParserEventType static members.
     */
    get eventType(): string;
    /**
     * Get the position in the xml string where the event was generated.
     */
    get position(): Position;
    /**
     * If namespace processing is enabled, returns the prefix of the element in case the eventType is ParserEventType.StartElement or ParserEventType.EndElement.
     */
    get prefix(): string;
    /**
     *  If namespace processing is enabled, returns the namespace of the element in case the eventType is ParserEventType.StartElement or ParserEventType.EndElement.
     */
    get namespace(): string;
    /**
     * Returns the name of the element in case the eventType is ParserEventType.StartElement or ParserEventType.EndElement.
     */
    get elementName(): string;
    /**
     * Returns a JSON object with the attributes of an element in case the eventType is ParserEventType.StartElement.
     */
    get attributes(): Object;
    /**
     * Returns the relevant data in case the eventType is ParserEventType.Text, ParserEventType.CDATA or ParserEventType.Comment.
     */
    get data(): string;
}
/**
 * A simple non-validating SAX parser based on https://github.com/vflash/easysax version 0.1.14
 */
export declare class XmlParser {
    private _parser;
    private _processNamespaces;
    private _namespaceStack;
    /**
     * Creates a new instance of the XmlParser class.
     * @param onEvent The callback to execute when a parser event occurs. The 'event' parameter contains information about the event.
     * @param onError The callback to execute when a parser error occurs. The 'error' parameter contains the error.
     * @param processNamespaces Specifies whether namespaces should be processed.
     */
    constructor(onEvent: (event: ParserEvent) => void, onError?: (error: Error, position: Position) => void, processNamespaces?: boolean);
    get angularSyntax(): boolean;
    set angularSyntax(value: boolean);
    /**
     * Parses the supplied xml string.
     * @param xmlString The string containing the xml to parse.
     */
    parse(xmlString: string): void;
    private static _getNamespacesStackEntry;
    private _resolveNamespace;
    private static _dereferenceEntities;
}
