import { IUI5Parser } from "../../../../parser/abstraction/IUI5Parser";
import { IParserConfigHandler } from "../../../config/IParserConfigHandler";
import { AbstractCustomClass } from "../../ui5class/AbstractCustomClass";
import { IClassFactory } from "../../ui5class/factory/IClassFactory";
import { TextDocument } from "../textdocument/TextDocument";
import { WorkspaceFolder } from "../textdocument/WorkspaceFolder";
import { Fragments, IFileReader, IFragment, IIdClassMap, IManifestPaths, IUIManifest, IView, IViews, IXMLFile } from "./IFileReader";
export declare abstract class AbstractFileReader<CustomClass extends AbstractCustomClass, Parser extends IUI5Parser> implements IFileReader {
    protected _manifests: IUIManifest[];
    private static readonly _classNameToPathCache;
    private static readonly _pathToClassNameCache;
    protected readonly _viewCache: IViews;
    protected readonly _fragmentCache: Fragments;
    protected readonly _UI5Version: string;
    globalStoragePath: string | undefined;
    protected readonly _configHandler: IParserConfigHandler;
    protected readonly _classFactory: IClassFactory<CustomClass>;
    protected _parser: Parser;
    constructor(configHandler: IParserConfigHandler, classFactory: IClassFactory<CustomClass>);
    abstract reEnrichAllCustomClasses(): void;
    setParser(parser: Parser): void;
    reloadFragmentReferences(): void;
    setNewViewContentToCache(viewContent: string, fsPath: string, forceRefresh?: boolean): void;
    setNewFragmentContentToCache(text: string, fsPath: string, forceRefresh?: boolean): void;
    getAllViews(): IView[];
    getDocumentTextFromCustomClassName(className: string, isFragment?: boolean): string | undefined;
    protected _checkIfFileExistsCaseSensitive(filepath: string): boolean;
    getClassFSPathFromClassName(className: string, isFragment?: boolean): string | undefined;
    abstract convertClassNameToFSPath(className: string, isController?: boolean, isFragment?: boolean, isView?: boolean, isFolder?: boolean): string | undefined;
    getAllManifests(): IUIManifest[];
    rereadAllManifests(): void;
    getManifestForClass(className?: string): IUIManifest | undefined;
    protected _fetchAllWorkspaceManifests(): void;
    getManifestFSPathsInWorkspaceFolder(): IManifestPaths[];
    protected _readFilesInWorkspace(path: string): string[];
    readFiles(path: string): string[];
    abstract getClassNameFromView(controllerClassName: string, controlId: string): string | undefined;
    getViewForController(controllerName: string): IView | undefined;
    protected _swapControllerNameIfItWasReplacedInManifest(controllerName: string): string;
    abstract getFragmentsMentionedInClass(className: string): IFragment[];
    getFragmentsInXMLFile(XMLFile: IXMLFile): IFragment[];
    getFirstFragmentForClass(className: string): IFragment | undefined;
    getViewText(controllerName: string): string | undefined;
    protected _getClassOfControlIdFromView(XMLFile: IXMLFile & IIdClassMap, controlId: string): string;
    readFragments(): void;
    readViews(): void;
    readI18n(): void;
    abstract readCustomClasses(): void;
    protected _readAllViewsAndSaveInCache(): void;
    protected _readAllFragmentsAndSaveInCache(): void;
    abstract getAllJSClassNamesFromProject(): string[];
    getControllerNameFromView(viewContent: string): string | undefined;
    getResponsibleClassForXMLDocument(document: TextDocument): string | undefined;
    getResponsibleClassNameForViewOrFragment(viewOrFragment: IXMLFile): string | undefined;
    getManifestExtensionsForClass(className: string): any | undefined;
    protected _getResponsibleClassNameForFragmentFromManifestExtensions(viewOrFragment: IXMLFile): string | undefined;
    protected _swapResponsibleControllerIfItIsExtendedInManifest(controllerName: string, sourceClassName: string): string;
    protected _getResponsibleClassNameForFragmentFromCustomUIClasses(viewOrFragment: IXMLFile): string | undefined;
    getFragmentsFromXMLDocumentText(document: IXMLFile): IFragment[];
    getFragment(fragmentName: string): IFragment | undefined;
    getAllFragments(): IFragment[];
    protected _getFragmentNameFromTag(fragmentTag: string): string | undefined;
    protected _getFragmentTags(document: IXMLFile): string[];
    getClassNameFromPath(fsPath: string): string | undefined;
    getCache(cacheType: IFileReader.CacheType): any;
    setCache(cacheType: IFileReader.CacheType, cache: string): void;
    clearCache(): void;
    protected _ensureThatPluginCacheFolderExists(): void;
    protected _getMetadataCachePath(): string;
    protected _getAPIIndexCachePath(): string;
    protected _getIconCachePath(): string;
    getResourceModelFiles(): {
        content: string;
        componentName: string;
    }[];
    readResourceModelFile(manifest: IUIManifest): string;
    getResourceModelUriForManifest(manifest: IUIManifest): string;
    removeFromCache(fsPath: string): boolean;
    protected _removeViewFromCache(fsPath: string): boolean;
    protected _removeFragmentFromCache(fsPath: string): boolean;
    getXMLFile(className: string, fileType?: string): IXMLFile | undefined;
    replaceViewNames(oldName: string, newName: string): void;
    removeView(viewName: string): void;
    replaceFragmentNames(oldName: string, newName: string): void;
    static readFilesInWorkspace(wsFolder: WorkspaceFolder, path: string, configHandler?: IParserConfigHandler): string[];
}
export declare function toNative(fsPath: string): string;
