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;
    get service(): TSLanguageService;
    get project(): TSProject;
    get isTypeScriptProject(): boolean;
    isConfiguredProject(project: TSProject): project is TypeScript.server.ConfiguredProject & TSProject;
    isInferredProject(project: TSProject): project is TypeScript.server.InferredProject & TSProject;
    updateOptions(options: Partial<TypescriptContextServiceOptions>): void;
    getVueRuntimeFileName(_version: string): string;
    getVueRuntimeFileNameFor(fileName: string): string;
    getProjectRuntimeFile(fileName: string): string;
    getProjectRuntimeFileNameFor(fileName: string): string;
    /**
     * Find typescript project for the file.
     */
    getProjectFor(fileName: string): TypeScript.server.Project | null;
    getVuePreferencesFor(fileName: string): ProjectPreferences;
    toNormalizedPath(fileName: string): TypeScript.server.NormalizedPath;
    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;
    ensureUptoDate(fileName: string): void;
    getGeneratedFileName(fileName: string): string;
    /** @deprecated */
    ensureProject(fileName: string): void;
    getTokenAtPosition(sourceFile: TypeScript.SourceFile, position: number): TypeScript.Node;
}
export {};
//# sourceMappingURL=TypescriptContextService.d.ts.map