import { IUI5Parser } from "../../../parser/abstraction/IUI5Parser";
import { IUIField, IUIMethod } from "../ui5class/AbstractBaseClass";
import { AbstractCustomClass } from "../ui5class/AbstractCustomClass";
import { IFieldsAndMethods } from "../ui5class/factory/IClassFactory";
import { CustomJSClass } from "../ui5class/js/CustomJSClass";
import { TextDocument } from "../util/textdocument/TextDocument";
import { ISyntaxAnalyser } from "./ISyntaxAnalyser";
export interface IAcornPosition {
    line: number;
    column: number;
}
export interface IAcornLocation {
    start: IAcornPosition;
    end: IAcornPosition;
}
export declare class AcornSyntaxAnalyzer implements ISyntaxAnalyser {
    private readonly parser;
    constructor(parser: IUI5Parser<AbstractCustomClass>);
    getFieldsAndMethodsOfTheCurrentVariable(document: TextDocument, position: number): IFieldsAndMethods | undefined;
    findInnerNode(node: any, position: number): any | undefined;
    private _getSwitchStatementPart;
    private _getIfStatementPart;
    findClassNameForStack(stack: any[], currentClassName: string, primaryClassName?: string, clearStack?: boolean): string;
    getResultOfPromise(className: string): string;
    private _removeOnePromiseLevel;
    getClassNameOfTheModelFromManifest(modelName: string, className: string, clearStack?: boolean): string;
    private _checkOfThisIsCorrectSetModel;
    private _getClassNameOfTheRouterFromManifest;
    private _getClassNameOfTheComponent;
    private _handleBaseEventException;
    getParametersOfTheEvent(eventName: string, className: string): import("../ui5class/AbstractBaseClass").IUIEventParam[] | undefined;
    getEventHandlerData(node: any, className: string): {
        className: string;
        eventName: string;
    } | undefined;
    getEventHandlerDataFromJSClass(className: string, eventHandlerName: string): {
        className: string;
        eventName: string;
        node: any;
    } | undefined;
    private _getEventHandlerDataFromXMLText;
    private _getEventHandlerName;
    private _handleArrayMethods;
    private _getClassNameIfNodeIsParamOfArrayMethod;
    private _getCallExpressionNodeWhichIsArrayMethod;
    private _isArrayMethod;
    private _generateSAPStandardClassNameFromStack;
    private _checkForGetViewByIdException;
    private _getClassNameFromViewById;
    findMethodReturnType(method: IUIMethod, className: string, includeParentMethods?: boolean, clearStack?: boolean): void;
    findFieldType(field: IUIField, className: string, includeParentMethods?: boolean, clearStack?: boolean): void;
    private _getAcornVariableDeclarationFromUIClass;
    private _findAllDeclarations;
    private _getAcornAssignmentsFromUIClass;
    private _findAllAssignments;
    expandAllContent(node: any, content?: any[]): any[];
    getContent(node: any): any[];
    private _getClassNameFromAcornVariableDeclaration;
    declarationStack: any[];
    getClassNameFromSingleAcornNode(node: any, UIClass: CustomJSClass, stack?: any[]): string;
    private _getObjectNameFromMemberExpressionRecursively;
    private _getClassNameFromUIDefineDotNotation;
    private _getClassNameFromMethodParams;
    findMethodHierarchically(className: string, methodName: string): IUIMethod | undefined;
    private _findFieldHierarchically;
    findAcornNode(nodes: any[] | undefined, position: number): any;
    getAcornVariableDeclarationAtIndex(UIClass: CustomJSClass, index: number): any;
    getAcornAssignmentExpressionAtIndex(UIClass: CustomJSClass, index: number): any;
}
