/// <reference types="node" />
import cp from 'child_process';
import * as lsp from 'vscode-languageserver-protocol/node';
import { Logger } from 'winston';
import { LspService } from '../interface';
export declare class CommonLspService implements LspService {
    isStarted: boolean;
    workspace: string;
    lspServerBin: string;
    protected lspServer: cp.ChildProcessWithoutNullStreams;
    protected lspClient: lsp.MessageConnection;
    protected readonly languageIdMap: Map<string, string>;
    protected logger: Logger;
    constructor(lspServerBin: string, workspace: string);
    start(): Promise<void>;
    stop(): Promise<void>;
    isMatch(filePath: string): boolean;
    getDocumentSymbols(filePath: string): Promise<lsp.SymbolInformation[] | null>;
    protected startLspServer(cwd?: string): cp.ChildProcessWithoutNullStreams;
    private init;
    protected getLanguageId(filePath: string): string;
    protected getCapabilities(): lsp.ClientCapabilities;
    private flattenSymbols;
    private onLspServerError;
}
