import type { BindOptions, SocketOptions } from 'node:dgram';
import { AbstractPhysicalLayer } from './abstract-physical-layer';
export declare class UdpPhysicalLayer extends AbstractPhysicalLayer {
    TYPE: 'SERIAL' | 'NET';
    private _socket;
    private _isOpen;
    private _destroyed;
    private _port;
    private _address?;
    isServer: boolean;
    get isOpen(): boolean;
    get destroyed(): boolean;
    /**
     *
     * @param options
     * @param remote If omitted, as server.
     * Otherwise as client.
     */
    constructor(options?: Partial<SocketOptions>, remote?: {
        port?: number;
        address?: string;
    });
    open(options?: BindOptions): Promise<void>;
    write(data: Buffer): Promise<void>;
    close(): Promise<void>;
    destroy(): Promise<void>;
}
