import type { TSLanguageService, TypeScript } from '../contracts/TypeScript';
import { FilesystemService } from '../services/FilesystemService';
import { LoggerService } from '../services/LoggerService';
import { TemplateDeclarationsService } from '../services/TemplateDeclarationsService';
import { TypescriptContextService } from '../services/TypescriptContextService';
export declare class DefinitionService implements Pick<TSLanguageService, 'getDefinitionAtPosition' | 'getDefinitionAndBoundSpan' | 'getTypeDefinitionAtPosition'> {
    private readonly fs;
    private readonly ts;
    private readonly declarations;
    readonly logger: LoggerService;
    readonly processDefinitionInfoCache: import("@vuedx/shared").Cache<string, TypeScript.DefinitionInfo[]>;
    constructor(fs: FilesystemService, ts: TypescriptContextService, declarations: TemplateDeclarationsService);
    getDefinitionAtPosition(fileName: string, position: number): readonly TypeScript.DefinitionInfo[] | undefined;
    getDefinitionAndBoundSpan(fileName: string, position: number): TypeScript.DefinitionInfoAndBoundSpan | undefined;
    getTypeDefinitionAtPosition(fileName: string, position: number): readonly TypeScript.DefinitionInfo[] | undefined;
    processDefinitionInfo(definition: TypeScript.DefinitionInfo): TypeScript.DefinitionInfo[];
    private getDefinitionInfoCacheKey;
}
//# sourceMappingURL=DefinitionService.d.ts.map