import { ResponseError, CancellationToken } from 'vscode-languageserver';
import * as rpc from 'vscode-jsonrpc';
export declare abstract class AbstractHandler {
    protected connection: rpc.MessageConnection;
    constructor(connection: rpc.MessageConnection);
    listen(): void;
    accept<T, E>(func: () => T, errorVal: T, errorMessage: string, token: CancellationToken): Thenable<T | ResponseError<E>>;
    cancelValue<E>(): ResponseError<E>;
    formatError(message: string, err: any): string;
    protected abstract init(): void;
}
