import { TCPRequest, TCPResponse } from '../types/protocol.types';
import { CommandType } from '../types/command.types';
/**
 * Message Framing - Handles encoding/decoding of TCP messages
 * Protocol: [4-byte length (uint32 BE)][JSON payload]
 */
export declare class MessageFramer {
    /**
     * Encode message to binary format: [length][JSON]
     */
    static encode(message: TCPRequest | TCPResponse): Buffer;
    /**
     * Decode buffer to message object
     * Note: Caller must ensure buffer has complete message
     */
    static decode(buffer: Buffer): TCPRequest | TCPResponse;
}
/**
 * Message Buffer - Accumulates incoming data and extracts complete messages
 */
export declare class MessageBuffer {
    private buffer;
    /**
     * Add chunk to buffer and extract complete messages
     */
    addChunk(chunk: Buffer): (TCPRequest | TCPResponse)[];
    /**
     * Clear buffer (useful for error recovery)
     */
    clear(): void;
    /**
     * Get current buffer size
     */
    get size(): number;
}
/**
 * Message Validator - Validates request structure and parameters
 */
export declare class MessageValidator {
    /**
     * Validate TCPRequest structure
     */
    static validateRequest(request: any): TCPRequest;
    /**
     * Validate command-specific parameters
     */
    static validateParams(command: CommandType, params: any): void;
    /**
     * Create error response
     */
    static createErrorResponse(requestId: string, statusCode: number, message: string, error?: string): TCPResponse;
    /**
     * Create success response
     */
    static createSuccessResponse(requestId: string, message: string, data?: any): TCPResponse;
}
