import { ASTNode, Color, ColorInformation, ColorPresentation, LanguageServiceParams, LanguageSettings, DocumentLanguageSettings, FoldingRange, JSONSchema, SelectionRange, FoldingRangesContext, DocumentSymbolsContext, ColorInformationContext as DocumentColorsContext, TextDocument, Position, CompletionItem, CompletionList, Hover, Range, SymbolInformation, Diagnostic, TextEdit, FormattingOptions, DocumentSymbol, DefinitionLink, MatchingSchema, JSONLanguageStatus, SortOptions } from './jsonLanguageTypes'; import { DocumentLink } from 'vscode-languageserver-types'; export type JSONDocument = { root: ASTNode | undefined; getNodeFromOffset(offset: number, includeRightBound?: boolean): ASTNode | undefined; }; export * from './jsonLanguageTypes'; export interface LanguageService { configure(settings: LanguageSettings): void; doValidation(document: TextDocument, jsonDocument: JSONDocument, documentSettings?: DocumentLanguageSettings, schema?: JSONSchema): PromiseLike; parseJSONDocument(document: TextDocument): JSONDocument; newJSONDocument(rootNode: ASTNode | undefined, syntaxDiagnostics?: Diagnostic[], comments?: Range[]): JSONDocument; resetSchema(uri: string): boolean; getMatchingSchemas(document: TextDocument, jsonDocument: JSONDocument, schema?: JSONSchema): PromiseLike; getLanguageStatus(document: TextDocument, jsonDocument: JSONDocument): JSONLanguageStatus; doResolve(item: CompletionItem): PromiseLike; doComplete(document: TextDocument, position: Position, doc: JSONDocument): PromiseLike; findDocumentSymbols(document: TextDocument, doc: JSONDocument, context?: DocumentSymbolsContext): SymbolInformation[]; findDocumentSymbols2(document: TextDocument, doc: JSONDocument, context?: DocumentSymbolsContext): DocumentSymbol[]; findDocumentColors(document: TextDocument, doc: JSONDocument, context?: DocumentColorsContext): PromiseLike; getColorPresentations(document: TextDocument, doc: JSONDocument, color: Color, range: Range): ColorPresentation[]; doHover(document: TextDocument, position: Position, doc: JSONDocument): PromiseLike; getFoldingRanges(document: TextDocument, context?: FoldingRangesContext): FoldingRange[]; getSelectionRanges(document: TextDocument, positions: Position[], doc: JSONDocument): SelectionRange[]; findDefinition(document: TextDocument, position: Position, doc: JSONDocument): PromiseLike; findLinks(document: TextDocument, doc: JSONDocument): PromiseLike; format(document: TextDocument, range: Range | undefined, options: FormattingOptions): TextEdit[]; sort(document: TextDocument, options: SortOptions): TextEdit[]; } export declare function getLanguageService(params: LanguageServiceParams): LanguageService;