import { createGrammarConfig as e } from "./languages/grammar-config.js";
import { LangiumParserErrorMessageProvider as t } from "./parser/langium-parser.js";
import { createCompletionParser as n } from "./parser/completion-parser-builder.js";
import { createLangiumParser as r } from "./parser/langium-parser-builder.js";
import { DefaultTokenBuilder as i } from "./parser/token-builder.js";
import { DefaultValueConverter as a } from "./parser/value-converter.js";
import { DefaultLangiumDocumentFactory as o, DefaultLangiumDocuments as s } from "./workspace/documents.js";
import { DefaultLinker as c } from "./references/linker.js";
import { DefaultNameProvider as l } from "./references/name-provider.js";
import { DefaultReferences as u } from "./references/references.js";
import { DefaultScopeComputation as d } from "./references/scope-computation.js";
import { DefaultScopeProvider as f } from "./references/scope-provider.js";
import { DefaultJsonSerializer as p } from "./serializer/json-serializer.js";
import { DefaultServiceRegistry as m } from "./service-registry.js";
import { ValidationRegistry as h } from "./validation/validation-registry.js";
import { DefaultDocumentValidator as g } from "./validation/document-validator.js";
import { DefaultAstNodeDescriptionProvider as _, DefaultReferenceDescriptionProvider as v } from "./workspace/ast-descriptions.js";
import { DefaultAstNodeLocator as y } from "./workspace/ast-node-locator.js";
import { DefaultConfigurationProvider as b } from "./workspace/configuration.js";
import { DefaultDocumentBuilder as x } from "./workspace/document-builder.js";
import { DefaultIndexManager as S } from "./workspace/index-manager.js";
import { DefaultWorkspaceManager as C } from "./workspace/workspace-manager.js";
import { DefaultLexer as w, DefaultLexerErrorMessageProvider as T } from "./parser/lexer.js";
import { JSDocDocumentationProvider as E } from "./documentation/documentation-provider.js";
import { DefaultCommentProvider as D } from "./documentation/comment-provider.js";
import { DefaultAsyncParser as O } from "./parser/async-parser.js";
import { DefaultWorkspaceLock as k } from "./workspace/workspace-lock.js";
import { DefaultHydrator as A } from "./serializer/hydrator.js";
//#region ../../node_modules/langium/lib/default-module.js
function j(o) {
	return {
		documentation: {
			CommentProvider: (e) => new D(e),
			DocumentationProvider: (e) => new E(e)
		},
		parser: {
			AsyncParser: (e) => new O(e),
			GrammarConfig: (t) => e(t),
			LangiumParser: (e) => r(e),
			CompletionParser: (e) => n(e),
			ValueConverter: () => new a(),
			TokenBuilder: () => new i(),
			Lexer: (e) => new w(e),
			ParserErrorMessageProvider: () => new t(),
			LexerErrorMessageProvider: () => new T()
		},
		workspace: {
			AstNodeLocator: () => new y(),
			AstNodeDescriptionProvider: (e) => new _(e),
			ReferenceDescriptionProvider: (e) => new v(e)
		},
		references: {
			Linker: (e) => new c(e),
			NameProvider: () => new l(),
			ScopeProvider: (e) => new f(e),
			ScopeComputation: (e) => new d(e),
			References: (e) => new u(e)
		},
		serializer: {
			Hydrator: (e) => new A(e),
			JsonSerializer: (e) => new p(e)
		},
		validation: {
			DocumentValidator: (e) => new g(e),
			ValidationRegistry: (e) => new h(e)
		},
		shared: () => o.shared
	};
}
function M(e) {
	return {
		ServiceRegistry: (e) => new m(e),
		workspace: {
			LangiumDocuments: (e) => new s(e),
			LangiumDocumentFactory: (e) => new o(e),
			DocumentBuilder: (e) => new x(e),
			IndexManager: (e) => new S(e),
			WorkspaceManager: (e) => new C(e),
			FileSystemProvider: (t) => e.fileSystemProvider(t),
			WorkspaceLock: () => new k(),
			ConfigurationProvider: (e) => new b(e)
		},
		profilers: {}
	};
}
//#endregion
export { j as createDefaultCoreModule, M as createDefaultSharedCoreModule };
