import { AbstractUI5Parser } from "../../../../parser/abstraction/AbstractUI5Parser";
import { AbstractCustomClass, ICustomMember } from "../../ui5class/AbstractCustomClass";
import { IXMLFile } from "../filereader/IFileReader";
import { IRange } from "../range/adapters/RangeAdapter";
export interface ILocation {
    filePath: string;
    range: IRange;
}
export interface IReferenceCodeLensCacheable {
    [className: string]: {
        [methodName: string]: ILocation[];
    };
}
export default abstract class ReferenceFinderBase<MemberType extends ICustomMember, ParserType extends AbstractUI5Parser<CustomClass>, CustomClass extends AbstractCustomClass> {
    protected readonly _parser: ParserType;
    constructor(parser: ParserType);
    abstract getReferenceLocations(member: MemberType): ILocation[];
    protected abstract _addLocationsFromUIClass(member: MemberType, UIClass: CustomClass, locations: ILocation[]): void;
    protected _addLocationsFromXMLDocument(XMLDoc: IXMLFile, member: MemberType, locations: ILocation[]): void;
    private _gerIndexOfAttributeValue;
}
