import { VueProject } from '@vuedx/projectconfig';
import type { TSLanguageService, TypeScript } from '../contracts/TypeScript';
import { FilesystemService } from '../services/FilesystemService';
import { LoggerService } from '../services/LoggerService';
import { TemplateContextKind, TemplateContextService } from '../services/TemplateContextService';
import { TemplateSlotsService } from '../services/TemplateSlotsService';
import { TypescriptContextService } from '../services/TypescriptContextService';
export declare class CompletionsService implements Pick<TSLanguageService, 'getCompletionsAtPosition' | 'getCompletionEntryDetails' | 'getCompletionEntrySymbol' | 'getDocCommentTemplateAtPosition' | 'getJsxClosingTagAtPosition'> {
    private readonly fs;
    private readonly ts;
    private readonly slots;
    private readonly template;
    readonly logger: LoggerService;
    constructor(fs: FilesystemService, ts: TypescriptContextService, slots: TemplateSlotsService, template: TemplateContextService);
    getCompletionsAtPosition(fileName: string, position: number, options: TypeScript.GetCompletionsAtPositionOptions | undefined): TypeScript.WithMetadata<TypeScript.CompletionInfo> | undefined;
    getCompletionEntryDetails(fileName: string, position: number, entryName: string, formatOptions: TypeScript.FormatCodeOptions | TypeScript.FormatCodeSettings | undefined, source: string | undefined, preferences: TypeScript.UserPreferences | undefined, data: TypeScript.CompletionEntryData | undefined): TypeScript.CompletionEntryDetails | undefined;
    getCompletionEntrySymbol(fileName: string, position: number, name: string, source: string | undefined): TypeScript.Symbol | undefined;
    getDocCommentTemplateAtPosition(fileName: string, position: number, options?: TypeScript.DocCommentTemplateOptions): TypeScript.TextInsertion | undefined;
    getJsxClosingTagAtPosition(fileName: string, position: number): TypeScript.JsxClosingTagInfo | undefined;
    private pick;
    processCompletionInfo<T extends TypeScript.CompletionInfo | undefined>(info: T, kind?: TemplateContextKind, project?: VueProject): T;
    processCompletionEntryDetails(entryDetails: TypeScript.CompletionEntryDetails | undefined, entryName?: string): TypeScript.CompletionEntryDetails | undefined;
}
//# sourceMappingURL=CompletionsService.d.ts.map