///
import { INode, SchemaRegistry } from '@mcschema/core';
import * as fs from 'fs';
import { TextDocument } from 'vscode-languageserver-textdocument';
import { Diagnostic, Range, SemanticTokensLegend } from 'vscode-languageserver/node';
import { URI as Uri } from 'vscode-uri';
import { JsonSchemaType } from '../data/JsonSchema';
import { VanillaData } from '../data/VanillaData';
import { DiagnosticMap, JsonNode } from '../nodes';
import { IdentityNode } from '../nodes/IdentityNode';
import { LanguageConfig } from '../plugins/LanguageConfigImpl';
import { SyntaxComponent, TextRange } from '../types';
import { FileType } from '../types/ClientCache';
import { CommandTree } from '../types/CommandTree';
import { Config } from '../types/Config';
import { DatapackDocument } from '../types/DatapackDocument';
import { PathAccessibleFunction, UrisOfIds } from '../types/handlers';
import { DatapackLanguageService } from './DatapackLanguageService';
export declare function getUri(str: string): Uri;
export declare function getRootUri(str: string): Uri;
export declare function getUriFromId(pathExists: PathAccessibleFunction, roots: Uri[], urisOfIds: UrisOfIds, id: IdentityNode, category: FileType, preferredRoot: Uri): Uri;
export declare function getUriFromId(pathExists: PathAccessibleFunction, roots: Uri[], urisOfIds: UrisOfIds, id: IdentityNode, category: FileType, preferredRoot?: undefined): Promise;
export declare function parseJsonNode({ service, textDoc, config, uri, schema, commandTree, vanillaData, jsonSchemas, schemaType }: {
service: DatapackLanguageService;
textDoc: TextDocument;
config: Config;
uri: Uri;
schema: INode;
commandTree: CommandTree;
jsonSchemas: SchemaRegistry;
schemaType: JsonSchemaType;
vanillaData: VanillaData;
}): JsonNode;
export declare function parseSyntaxComponents(service: DatapackLanguageService, textDoc: TextDocument, start: number | undefined, end: number | undefined, config: Config, uri: Uri, cursor: number | undefined, commandTree: CommandTree, vanillaData: VanillaData, jsonSchemas: SchemaRegistry, languageConfigs: Map): SyntaxComponent[];
export declare function getRelAndRootIndex(uri: Uri, roots: Uri[]): {
rel: string;
index: number;
} | null;
export declare function getRel(uri: Uri, roots: Uri[]): string | undefined;
export declare function getId(uri: Uri, roots: Uri[]): {
id: IdentityNode;
category: "function" | "advancement" | "damage_type" | "dimension" | "dimension_type" | "item_modifier" | "loot_table" | "predicate" | "recipe" | "structure" | "tag/block" | "tag/damage_type" | "tag/entity_type" | "tag/fluid" | "tag/function" | "tag/game_event" | "tag/item" | "tag/worldgen/biome" | "tag/worldgen/configured_carver" | "tag/worldgen/configured_decorator" | "tag/worldgen/configured_feature" | "tag/worldgen/configured_structure_feature" | "tag/worldgen/configured_surface_builder" | "tag/worldgen/density_function" | "tag/worldgen/noise" | "tag/worldgen/noise_settings" | "tag/worldgen/placed_feature" | "tag/worldgen/processor_list" | "tag/worldgen/structure" | "tag/worldgen/structure_set" | "tag/worldgen/template_pool" | "worldgen/biome" | "worldgen/configured_carver" | "worldgen/configured_decorator" | "worldgen/configured_feature" | "worldgen/configured_structure_feature" | "worldgen/configured_surface_builder" | "worldgen/density_function" | "worldgen/flat_level_generator_preset" | "worldgen/noise" | "worldgen/noise_settings" | "worldgen/placed_feature" | "worldgen/processor_list" | "worldgen/structure" | "worldgen/structure_set" | "worldgen/template_pool" | "worldgen/world_preset";
side: "data" | "assets";
} | undefined;
export declare function getRootIndex(uri: Uri, roots: Uri[]): number | null;
export declare function getTextDocument({ uri, langID, getText, version }: {
uri: Uri;
langID: 'mcfunction' | 'json';
getText: () => Promise;
version: number | null;
}): Promise;
export declare function getDiagnosticMap(diagnostics: Diagnostic[]): DiagnosticMap;
export declare function getSemanticTokensLegend(): SemanticTokensLegend;
export declare function getLspRange(textDoc: TextDocument, { start, end }: TextRange): Range;
export declare function getStringLines(string: string): string[];
export declare function getSelectedNodeFromInfo(info: DatapackDocument, offset: number): {
index: number;
node: JsonNode | SyntaxComponent | null;
};
export declare function partitionedIteration(iterator: IterableIterator, onEachItem: (item: T) => any): Promise;
export declare function walkFile(workspaceRootPath: string, abs: string, onFile: (abs: string, rel: string, stat: fs.Stats) => any, pathFilter?: (abs: string, rel: string, stat: fs.Stats) => Promise): Promise;
export declare function walkRoot(workspaceRoot: Uri, abs: string, cb: (xabs: string, stat: fs.Stats) => any, depth?: number): Promise;