/// <reference types="node" />
import { TTransport } from '../transports';
import { IInt64, Int64, IThriftField, IThriftList, IThriftMap, IThriftMessage, IThriftSet, IThriftStruct, LogFunction, MessageType, TType } from '../types';
export declare abstract class TProtocol {
    protected transport: TTransport;
    protected logger: LogFunction;
    protected requestId: number | null;
    constructor(trans: TTransport, logger?: LogFunction);
    getTransport(): TTransport;
    flush(): Buffer;
    abstract writeMessageBegin(name: string, type: MessageType, seqid: number): void;
    abstract writeMessageEnd(): void;
    abstract writeStructBegin(name: string): void;
    abstract writeStructEnd(): void;
    abstract writeFieldBegin(name: string, type: TType, id: number): void;
    abstract writeFieldEnd(): void;
    abstract writeFieldStop(): void;
    abstract writeMapBegin(keyType: TType, valueType: TType, size: number): void;
    abstract writeMapEnd(): void;
    abstract writeListBegin(elementType: TType, size: number): void;
    abstract writeListEnd(): void;
    abstract writeSetBegin(elementType: TType, size: number): void;
    abstract writeSetEnd(): void;
    abstract writeBool(bool: boolean): void;
    abstract writeByte(b: number): void;
    abstract writeI16(i16: number): void;
    abstract writeI32(i32: number): void;
    abstract writeI64(i64: number | string | IInt64): void;
    abstract writeDouble(dbl: number): void;
    abstract writeString(arg: string): void;
    abstract writeBinary(arg: string | Buffer): void;
    abstract readMessageBegin(): IThriftMessage;
    abstract readMessageEnd(): void;
    abstract readStructBegin(): IThriftStruct;
    abstract readStructEnd(): void;
    abstract readFieldBegin(): IThriftField;
    abstract readFieldEnd(): void;
    abstract readMapBegin(): IThriftMap;
    abstract readMapEnd(): void;
    abstract readListBegin(): IThriftList;
    abstract readListEnd(): void;
    abstract readSetBegin(): IThriftSet;
    abstract readSetEnd(): void;
    abstract readBool(): boolean;
    abstract readByte(): number;
    abstract readI16(): number;
    abstract readI32(): number;
    abstract readI64(): Int64;
    abstract readDouble(): number;
    abstract readBinary(): Buffer;
    abstract readString(): string;
    abstract skip(type: TType): void;
}
