import { VfsInterface } from '../types';
import { Connection } from '@volar/language-server/browser';
export type CreateTypescriptEnvironmentArgs = {
    connection: Connection;
    fs: VfsInterface;
};
export declare const createLanguageServer: ({ connection, fs }: CreateTypescriptEnvironmentArgs) => Promise<{
    initializeParams: import("vscode-languageserver-protocol").InitializeParams;
    project: import("@volar/language-server").LanguageServerProject;
    languageServicePlugins: import("@volar/language-service").LanguageServicePlugin<any>[];
    initialize(params: import("vscode-languageserver-protocol").InitializeParams, project: import("@volar/language-server").LanguageServerProject, languageServicePlugins: import("@volar/language-service").LanguageServicePlugin[]): import("vscode-languageserver-protocol").InitializeResult<import("@volar/language-server").ExperimentalFeatures>;
    initialized(): void;
    shutdown(): void;
    configurations: {
        get: <T>(section: string, scopeUri?: string) => Promise<T | undefined>;
        onDidChange: (cb: import("vscode-languageserver-protocol").NotificationHandler<import("vscode-languageserver-protocol").DidChangeConfigurationParams>) => {
            dispose(): void;
        };
    };
    editorFeatures: void;
    documents: {
        all: () => import("@volar/language-server/lib/utils/snapshotDocument").SnapshotDocument[];
        onDidChangeContent: import("vscode-languageserver-protocol").Event<import("vscode-languageserver").TextDocumentChangeEvent<import("@volar/language-server/lib/utils/snapshotDocument").SnapshotDocument>>;
        onDidOpen: import("vscode-languageserver-protocol").Event<import("vscode-languageserver").TextDocumentChangeEvent<import("@volar/language-server/lib/utils/snapshotDocument").SnapshotDocument>>;
        onDidClose: import("vscode-languageserver-protocol").Event<import("vscode-languageserver").TextDocumentChangeEvent<import("@volar/language-server/lib/utils/snapshotDocument").SnapshotDocument>>;
        onDidSave: import("vscode-languageserver-protocol").Event<import("vscode-languageserver").TextDocumentChangeEvent<import("@volar/language-server/lib/utils/snapshotDocument").SnapshotDocument>>;
        get(uri: import("vscode-uri").URI): import("@volar/language-server/lib/utils/snapshotDocument").SnapshotDocument | undefined;
    };
    workspaceFolders: {
        readonly all: import("vscode-uri").URI[];
        has(uri: import("vscode-uri").URI): boolean;
        onDidChange: (cb: import("vscode-languageserver-protocol").NotificationHandler<import("vscode-languageserver-protocol").WorkspaceFoldersChangeEvent>) => {
            dispose(): void;
        };
    };
    fileWatcher: {
        watchFiles: (patterns: string[]) => Promise<import("vscode-languageserver-protocol").Disposable>;
        onDidChangeWatchedFiles: (cb: import("vscode-languageserver-protocol").NotificationHandler<import("vscode-languageserver-protocol").DidChangeWatchedFilesParams>) => {
            dispose: () => void;
        };
    };
    languageFeatures: {
        requestRefresh: (clearDiagnostics: boolean) => Promise<void>;
    };
    fileSystem: {
        readFile(uri: import("vscode-uri").URI): string | Thenable<string | undefined>;
        stat(uri: import("vscode-uri").URI): import("@volar/language-service").FileStat | Thenable<import("@volar/language-service").FileStat | undefined>;
        readDirectory(uri: import("vscode-uri").URI): import("@volar/language-service").ProviderResult<[string, import("@volar/language-service").FileType][]>;
        install(scheme: string, provider: import("@volar/language-service").FileSystem): void;
    };
    env: import("@volar/language-server").LanguageServerEnvironment;
    connection: Connection;
    onInitialize(callback: (serverCapabilities: import("vscode-languageserver-protocol").ServerCapabilities<import("@volar/language-server").ExperimentalFeatures>) => void): void;
    onInitialized(callback: () => void): void;
}>;
