export interface Device {
    address: string;
    port: number;
    target: Uint8Array;
    serialNumber: string;
    sequence: number;
}
export interface DeviceConfig {
    address: string;
    serialNumber?: string;
    port?: number;
    target?: Uint8Array;
    sequence?: number;
}
export declare function Device(config: DeviceConfig): Device;
export interface DevicesOptions {
    onAdded?: (device: Device) => void;
    onChanged?: (device: Device) => void;
    onRemoved?: (device: Device) => void;
    defaultTimeoutMs?: number;
}
export interface DevicesInstance {
    readonly registered: Map<string, Device>;
    register(serialNumber: string, port: number, address: string, target?: Uint8Array): Device;
    remove(serialNumber: string): boolean;
    get(serialNumber: string, signal?: AbortSignal): Promise<Device>;
    [Symbol.iterator](): Iterator<Device>;
}
export declare function Devices(options?: DevicesOptions): DevicesInstance;
//# sourceMappingURL=devices.d.ts.map