import { IUI5Parser } from "../../../../parser/abstraction/IUI5Parser";
import { IUIMethod } from "../../ui5class/AbstractBaseClass";
import { IXMLFile } from "../filereader/IFileReader";
export interface ITag {
    text: string;
    positionBegin: number;
    positionEnd: number;
    attributes?: string[];
}
export interface IHierarchicalTag extends ITag {
    tags: IHierarchicalTag[];
}
export declare enum PositionType {
    InExistingAttribute = "1",
    InNewAttribute = "7",
    Content = "2",
    InTheString = "3",
    InTheClassName = "4",
    InComments = "5",
    InBodyOfTheClass = "6"
}
export interface IXMLDocumentIdData {
    id: string;
    className: string;
    tagText: string;
    sourceClassName: string;
}
export declare class XMLParser {
    private readonly _parser;
    constructor(parser: IUI5Parser);
    getXMLFunctionCallTagsAndAttributes(viewOrFragment: IXMLFile, eventHandlerName: string, functionCallClassName?: string): {
        tag: ITag;
        attributes: string[];
    }[];
    getClassPathFromRequire(attributesWithRequire: string[], className: string): string;
    getAllAttributesWithRequire(tags: ITag[]): string[];
    getAllIDsInCurrentView(XMLFile: IXMLFile): IXMLDocumentIdData[];
    getLibraryNameInPosition(XMLFile: IXMLFile, currentPosition: number): any;
    getClassNameInPosition(XMLFile: IXMLFile, currentPosition: number): string;
    getParentTagAtPosition(XMLFile: IXMLFile, position: number, closedTags?: string[]): ITag;
    getTagInPosition(XMLFile: IXMLFile, position: number): ITag;
    private _getTagInPosition;
    private _findInPosition;
    getTagBeginEndPosition(XMLFile: IXMLFile, position: number): {
        positionBegin: number;
        positionEnd: number;
    };
    getIfPositionIsNotInComments(document: IXMLFile, position: number): boolean;
    getIfPositionIsInString(XMLFile: IXMLFile, position: number): boolean;
    getTagPrefix(tagText: string): string;
    getFullClassNameFromTag(tag: ITag, XMLFile: IXMLFile): string;
    getClassNameFromTag(tagText: string): string;
    getLibraryPathFromTagPrefix(XMLFile: IXMLFile, tagPrefix: string, position: number): any;
    getPositionType(XMLFile: IXMLFile, currentPosition: number): PositionType.InExistingAttribute | PositionType.InNewAttribute | PositionType.InTheString | PositionType.InTheClassName | PositionType.InBodyOfTheClass;
    getPositionBeforeStringBegining(XMLViewText: string, currentPosition: number): number;
    getNearestAttribute(XMLViewText: string, currentPosition: number): string;
    getMethodsOfTheControl(controllerName: string): IUIMethod[];
    private _getClassMethodsRecursively;
    getPrefixForLibraryName(libraryName: string, document: string): string | undefined;
    getTagHierarchy(XMLFile: IXMLFile): IHierarchicalTag[];
    private _fillSubTags;
    getAllTags(XMLFile: IXMLFile): ITag[];
    fillXMLParsedData(XMLFile: IXMLFile): void;
    getStringPositionMapping(document: IXMLFile): {
        positionMapping: boolean[];
        areAllStringsClosed: boolean;
    };
    private _getTagBeginingIndex;
    getAttributesOfTheTag(tag: ITag | string): string[] | null;
    getAttributeNameAndValue(attribute: string): {
        attributeName: string;
        attributeValue: string;
    };
    getPositionsOfFunctionCallInXMLText(functionCallName: string, XMLText: string): number[];
    getEventHandlerNameFromAttributeValue(attributeValue: string): string;
}
