/// <reference types="node" />
import * as udp from 'dgram';
import * as net from 'net';
import { EventEmitter } from 'events';
import { ViscaTransport } from './transport';
import { ViscaCommand } from './command';
export interface UDPData {
    uuid: string;
    viscaCommand: ViscaCommand;
}
export declare class ViscaServer extends EventEmitter implements ViscaTransport {
    port: number;
    uuid: string;
    socket: udp.Socket;
    constructor(port?: number);
    open(): void;
    close(): void;
    write(cmd: ViscaCommand): void;
}
export declare class UDPTransport extends EventEmitter {
    host: string;
    port: number;
    debug: boolean;
    uuid: string;
    socket: udp.Socket;
    constructor(host?: string, port?: number);
    open(): void;
    onData(packet: number[]): void;
    write(viscaCommand: ViscaCommand): void;
}
export declare class TCPTransport extends EventEmitter {
    host: string;
    port: number;
    debug: boolean;
    uuid: string;
    socket: net.Socket;
    constructor(host?: string, port?: number);
    open(): void;
    onData(packet: number[]): void;
    write(viscaCommand: ViscaCommand): void;
}
