import { SyntaxNode } from 'web-tree-sitter'; import { HttpApiAnalyser } from '../base/HttpApiAnalyser'; import { MemoizedQuery } from '../base/LanguageProfile'; import { CodeFile, CodeFunction, CodeStructure } from '../../codemodel/CodeElement'; import { LanguageIdentifier } from '../../base/common/languages/languages'; import { StructurerProvider } from "../base/StructurerProvider"; import { ApiResource } from "@autodev/worker-core"; export interface Annotation { name: string; keyValues: { key: string; value: string; }[]; } export declare abstract class SpringRestApiAnalyser extends HttpApiAnalyser { protected abstract structurer: StructurerProvider; protected abstract get restTemplateQuery(): MemoizedQuery; abstract readonly langId: LanguageIdentifier; fileFilter: (codeFile: CodeFile) => boolean; sourceCodeAnalysis(sourceCode: string, filePath: string, workspacePath: string): Promise; analysis(codeFile: CodeFile, workspacePath: string): Promise; protected cleanStringLiteral(text: string): string; protected isSpringController(annotations: Annotation[]): boolean; protected getBaseUrl(annotations: Annotation[]): string; protected processControllerMethod(method: CodeFunction, annotations: Annotation[], baseUrl: string, node: CodeStructure): void; protected getPathFromAnnotation(annotation: Annotation): string; protected findRestTemplateUsages(rootNode: SyntaxNode, node: CodeStructure): void; protected combinePaths(basePath: string, subPath: string): string; }