import { Logger } from './Logger';
import { Connection } from './Connection';
export declare enum TransportType {
    TCP = "tcp",
    WebSocket = "websocket"
}
export declare enum TransportState {
    Head = 0,
    Body = 1,
    Closed = 2
}
export declare class Transport {
    private connection;
    private log;
    onData: (data: Buffer) => void;
    onDisconnect: () => void;
    private state;
    private head;
    private package;
    constructor(connection: Connection, log: Logger);
    onError(error: Error): void;
    onClose(): void;
    processData(buffer: Buffer): void;
    readHead(buffer: Buffer, offset: number): number;
    readBody(buffer: Buffer, offset: number): number;
    reset(): void;
    getPackageSize(buffer: Buffer): number;
    dispatch(data: Buffer): void;
    close(): void;
    destroy(): void;
}
