import { IMessageSerializer } from './types.js';
import { MessageRegistry } from './message-registry.js';

/**
 * Serializes MAVLink messages to bytes.
 * Delegates message lookup to MessageRegistry.
 */
declare class MessageSerializer implements IMessageSerializer {
    private readonly registry;
    constructor(registry: MessageRegistry);
    /**
     * Serialize a message to MAVLink bytes
     */
    serializeMessage(message: Record<string, unknown> & {
        message_name: string;
    }): Uint8Array;
    /**
     * Complete a message with default values for all undefined fields
     */
    completeMessage(message: Record<string, unknown> & {
        message_name: string;
    }): Record<string, unknown>;
    /**
     * Extract message fields from payload structure
     */
    private extractMessageFields;
    /**
     * Complete message with default values for missing fields
     */
    private completeMessageWithDefaults;
}

export { MessageSerializer };
