import { Token } from 'antlr4ts';
import * as lsp from 'vscode-languageserver';
import { TextDocument } from 'vscode-languageserver-textdocument';
import { SchemaContext } from './listeners/schema.listener';
import { SemanticToken } from './listeners/semantic-tokens.listener';
import { StructureResult } from './listeners/structure.listener';
import { ParsingWarehouse } from './parsing-warehouse';
import { SchemaRegistry } from './schema-registry';
import { PreviewContext } from './visitors/preview.visitor';
export declare class LSPServer {
    private readonly _warehouse;
    private readonly _schemaRegistry;
    constructor();
    get warehouse(): ParsingWarehouse;
    get schemaRegistry(): SchemaRegistry;
    getTokenByPosition(document: TextDocument, position: lsp.Position): Token | undefined;
    doValidation(document: TextDocument): lsp.Diagnostic[];
    doFormatting(document: TextDocument, options: lsp.FormattingOptions): string;
    doFoldingRanges(document: TextDocument): lsp.FoldingRange[];
    doReferences(document: TextDocument, position: lsp.Position, skipSelf?: boolean): lsp.Range[];
    parseForSemanticTokens(document: TextDocument): SemanticToken[];
    doCompletion(document: TextDocument, position: lsp.Position): {
        completionItems: lsp.CompletionItem[];
        identifiers: string[];
    };
    parseStructure(document: TextDocument, options?: StructureCommandOptions): StructureResult;
    generatePreviewScript(document: TextDocument, context: PreviewContext): string;
    extractSchemaContexts(document: TextDocument): SchemaContext[];
}
export declare function isSemanticTokenReference(token1: SemanticToken, token2: SemanticToken): boolean;
export interface StructureCommandOptions {
    ignoreInsertSource: boolean;
    addCreateContext: boolean;
}
