import * as msgpack from '@chemzqm/msgpack-lite';
import { ILogger } from '../utils/logger';
import Transport, { Response } from './base';
export declare class NvimTransport extends Transport {
    private pending;
    private nextRequestId;
    private encodeStream;
    private decodeStream;
    private reader;
    private writer;
    protected codec: msgpack.Codec;
    private attached;
    private client;
    constructor(logger: ILogger);
    private parseMessage;
    private setupCodec;
    attach(writer: NodeJS.WritableStream, reader: NodeJS.ReadableStream, client: any): void;
    detach(): void;
    request(method: string, args: any[], cb: Function): any;
    notify(method: string, args: any[]): void;
    send(arr: any[]): void;
    vimCommand(command: any, ..._args: any[]): void;
    vimRequest(command: any, _args: any[]): Promise<any>;
    protected createResponse(_method: string, requestId: number): Response;
}
