/// <reference types="node" />
import IHuddlyDeviceAPI from '@huddly/sdk-interfaces/lib/interfaces/IHuddlyDeviceAPI';
import IUVCControlAPI from '@huddly/sdk-interfaces/lib/interfaces/IUVCControlApi';
import ITransport from '@huddly/sdk-interfaces/lib/interfaces/ITransport';
import IDeviceDiscovery from '@huddly/sdk-interfaces/lib/interfaces/IDeviceDiscovery';
import DeviceApiOpts from '@huddly/sdk-interfaces/lib/interfaces/IDeviceApiOpts';
import HuddlyHEX from '@huddly/sdk-interfaces/lib/enums/HuddlyHex';
import NodeUsbTransport from './transport';
import { EventEmitter } from 'events';
import DeviceDiscoveryManager from './manager';
import { usb } from 'usb';
export declare const defaultPidsToIgnore: HuddlyHEX[];
export default class HuddlyDeviceAPIUSB implements IHuddlyDeviceAPI {
    private readonly className;
    eventEmitter: EventEmitter;
    deviceDiscoveryManager: DeviceDiscoveryManager;
    maxSearchRetries: Number;
    alwaysRetry: boolean;
    constructor(opts?: DeviceApiOpts);
    initialize(): void;
    registerForHotplugEvents(eventEmitter: EventEmitter): void;
    getDeviceDiscoveryAPI(): Promise<IDeviceDiscovery>;
    getValidatedTransport(device: usb.Device): Promise<ITransport>;
    getTransport(device: usb.Device): Promise<NodeUsbTransport>;
    isUVCControlsSupported(device: usb.Device): Promise<boolean>;
    getUVCControlAPIForDevice(device: usb.Device): Promise<IUVCControlAPI>;
    isHIDSupported(device: usb.Device): Promise<boolean>;
    getHIDAPIForDevice(device: usb.Device): Promise<any>;
}
