///
import EventEmitter from 'events';
import { Device } from './Device';
import type { InitOptions } from './Device';
import type { OneKeyDeviceInfo as DeviceDescriptor } from '@onekeyfe/hd-transport';
import type DeviceConnector from './DeviceConnector';
export declare const canPathIdentifyDevice: (path?: string) => boolean;
export type DeviceDescriptorDiff = {
didUpdate: boolean;
connected: DeviceDescriptor[];
disconnected: DeviceDescriptor[];
changedSessions: DeviceDescriptor[];
changedDebugSessions: DeviceDescriptor[];
acquired: DeviceDescriptor[];
debugAcquired: DeviceDescriptor[];
released: DeviceDescriptor[];
debugReleased: DeviceDescriptor[];
descriptors: DeviceDescriptor[];
};
export declare class DevicePool extends EventEmitter {
static current: DeviceDescriptor[] | null;
static upcoming: DeviceDescriptor[];
static connectedPool: DeviceDescriptor[];
static disconnectPool: DeviceDescriptor[];
static devicesCache: Record;
static emitter: EventEmitter;
static connector: DeviceConnector;
static setConnector(connector: DeviceConnector): void;
static getDevices(descriptorList: DeviceDescriptor[], connectId?: string, initOptions?: InitOptions): Promise<{
devices: Record;
deviceList: Device[];
}>;
static clearDeviceCache(connectId?: string): void;
static _createDevice(descriptor: DeviceDescriptor, initOptions?: InitOptions): Promise;
static _refreshRuntimeState(device: Device, initOptions?: InitOptions): Promise;
static _refreshProtocolV2DiscoveryState(device: Device): Promise;
static _checkDevicePool(initOptions?: InitOptions, connectId?: string): Promise;
static _sendConnectMessage(initOptions?: InitOptions, connectId?: string): Promise;
static _sendDisconnectMessage(): void;
static reportDeviceChange(upcoming: DeviceDescriptor[]): void;
static getDeviceByPath(path: string): Device | undefined;
static _addConnectedDeviceToPool(descriptor: DeviceDescriptor): void;
static _removeDeviceFromConnectedPool(path: string): void;
static _addDisconnectedDeviceToPool(descriptor: DeviceDescriptor): void;
static resetState(): void;
static dispose(): void;
}
//# sourceMappingURL=DevicePool.d.ts.map