import { ProjectPreferences, VueProject } from '@vuedx/projectconfig';
import type { Disposable } from '../contracts/Disposable';
import type { TSLanguageService, TSLanguageServiceHost, TSProject, TypeScript } from '../contracts/TypeScript';
interface TypescriptContextServiceOptions {
    project?: TSProject;
    typesDir: string;
    typescript: typeof TypeScript;
    languageService: TSLanguageService;
    languageServiceHost: TSLanguageServiceHost;
    serverHost: TypeScript.server.ServerHost;
}
export declare class TypescriptContextService implements Disposable {
    #private;
    private readonly logger;
    private options;
    constructor(options: TypescriptContextServiceOptions);
    get lib(): typeof TypeScript;
    get serverHost(): TypeScript.server.ServerHost;
    get projectService(): TypeScript.server.ProjectService | undefined;
    get service(): TSLanguageService;
    get serviceHost(): TSLanguageServiceHost;
    get project(): TSProject | undefined;
    updateOptions(options: Partial<TypescriptContextServiceOptions>): void;
    getVueRuntimeFileName(_version: string): string;
    getVueRuntimeFileNameFor(fileName: string): string;
    getProjectRuntimeFile(fileName: string): string;
    getProjectRuntimeFileNameFor(fileName: string): string;
    getVuePreferencesFor(fileName: string): ProjectPreferences;
    getVueProjectFor(fileName: string): VueProject;
    /**
     * Find source file in typescript program
     */
    getSourceFile(fileName: string): TypeScript.SourceFile | null;
    dispose(): void;
    get isRunningSchemeMode(): boolean;
    runInSchemeMode<R>(fn: () => R): R;
    getGeneratedFileName(fileName: string): string;
    getTokenAtPosition(sourceFile: TypeScript.SourceFile, position: number): TypeScript.Node;
}
export {};
//# sourceMappingURL=TypescriptContextService.d.ts.map