import { Project, SourceFile } from "ts-morph";
import { IParserConfigHandler } from "../classes/config/IParserConfigHandler";
import { HTTPHandler } from "../classes/http/HTTPHandler";
import { URLBuilder } from "../classes/http/URLBuilder";
import { SAPIcons } from "../classes/librarydata/SAPIcons";
import { SAPNodeDAO } from "../classes/librarydata/SAPNodeDAO";
import { UI5MetadataDAO } from "../classes/librarydata/UI5MetadataDAO";
import { TSClassFactory } from "../classes/parsing/ui5class/factory/TSClassFactory";
import { CustomTSClass } from "../classes/parsing/ui5class/ts/CustomTSClass";
import { CustomTSObject } from "../classes/parsing/ui5class/ts/CustomTSObject";
import { IFileReader } from "../classes/parsing/util/filereader/IFileReader";
import { ResourceModelData } from "../classes/parsing/util/i18n/ResourceModelData";
import { TextDocumentTransformer } from "../classes/parsing/util/textdocument/TextDocumentTransformer";
import { WorkspaceFolder } from "../classes/parsing/util/textdocument/WorkspaceFolder";
import { XMLParser } from "../classes/parsing/util/xml/XMLParser";
import { ReusableMethods } from "../classes/ReusableMethods";
import { AbstractUI5Parser } from "./abstraction/AbstractUI5Parser";
import { IConstructorParams } from "./abstraction/IUI5Parser";
export interface UI5TSParserConstructor extends IConstructorParams<CustomTSClass | CustomTSObject> {
    classFactory?: TSClassFactory;
}
export declare class UI5TSParser extends AbstractUI5Parser<CustomTSClass | CustomTSObject> {
    readonly configHandler: IParserConfigHandler;
    readonly classFactory: TSClassFactory;
    readonly fileReader: IFileReader;
    readonly tsProjects: Project[];
    readonly nodeDAO: SAPNodeDAO;
    readonly metadataDAO: UI5MetadataDAO;
    readonly urlBuilder: URLBuilder;
    readonly icons: SAPIcons;
    readonly httpHandler: HTTPHandler;
    readonly resourceModelData: ResourceModelData;
    readonly textDocumentTransformer: TextDocumentTransformer;
    readonly reusableMethods: ReusableMethods;
    readonly xmlParser: XMLParser;
    readonly workspaceFolder: WorkspaceFolder;
    constructor(params: UI5TSParserConstructor, packagePath?: string);
    getProject(fsPath: string): Project | undefined;
    processSourceFiles(project: Project, changedFiles: SourceFile[]): void;
    initializeCustomClasses(): void;
    _initializeTS(folderPath: string): {
        paths: string[];
        sourceFiles: SourceFile[];
        project: Project;
    };
}
