import { EventEmitter } from '../core/EventEmitter'; /** * Bluetooth device information */ export interface BluetoothDevice { /** Unique device identifier */ deviceId: string; /** Device name */ name: string; /** Signal strength (RSSI) */ rssi?: number; /** Advertisement data */ advertisementData?: ArrayBuffer; /** Service UUIDs */ serviceUUIDs?: string[]; /** Local name from advertisement */ localName?: string; /** Whether device is paired */ isPaired?: boolean; /** Last connection timestamp */ lastConnected?: number; } /** * Scan options */ export interface ScanOptions { /** Scan timeout in milliseconds (default: 15000) */ timeout?: number; /** Filter by service UUIDs */ serviceUUIDs?: string[]; /** Filter by device name (string or RegExp) */ nameFilter?: string | RegExp; /** Allow duplicate device reports (default: false) */ allowDuplicates?: boolean; } /** * Device manager events */ export interface DeviceManagerEvents { 'device-found': BluetoothDevice; 'scan-start': void; 'scan-stop': void; 'device-connected': string; 'device-disconnected': string; error: Error; } /** * Device manager interface */ export interface IDeviceManager { startScan(options?: ScanOptions): Promise; stopScan(): Promise; getDiscoveredDevices(): BluetoothDevice[]; getPairedDevices(): Promise; connect(deviceId: string): Promise; disconnect(deviceId: string): Promise; getDeviceInfo(deviceId: string): BluetoothDevice | null; on(event: K, callback: (data: DeviceManagerEvents[K]) => void): void; off(event: K, callback: (data: DeviceManagerEvents[K]) => void): void; } /** * Device Manager class * Manages Bluetooth device discovery and connection */ export declare class DeviceManager extends EventEmitter implements IDeviceManager { protected readonly logger: { debug: (message: string, ...args: unknown[]) => void; info: (message: string, ...args: unknown[]) => void; warn: (message: string, ...args: unknown[]) => void; error: (message: string, ...args: unknown[]) => void; }; private discoveredDevices; private deviceCache; private isScanning; private scanTimeout; private currentScanOptions; private readonly PAIRED_DEVICES_KEY; private readonly CACHE_EXPIRY; /** * Start scanning for Bluetooth devices */ startScan(options?: ScanOptions): Promise; /** * Stop scanning for Bluetooth devices */ stopScan(): Promise; /** * Get list of discovered devices */ getDiscoveredDevices(): BluetoothDevice[]; /** * Get list of previously paired devices */ getPairedDevices(): Promise; /** * Connect to a Bluetooth device */ connect(deviceId: string): Promise; /** * Disconnect from a Bluetooth device */ disconnect(deviceId: string): Promise; /** * Get device information */ getDeviceInfo(deviceId: string): BluetoothDevice | null; /** * Get cached service info for a device */ getCachedServiceInfo(deviceId: string): { serviceId: string; characteristicId: string; } | null; /** * Check if currently scanning */ get scanning(): boolean; /** * Initialize Bluetooth adapter */ private initBluetooth; /** * Handle device found event */ private handleDeviceFound; /** * Save device to paired devices list */ private savePairedDevice; /** * Clear all cached data */ clearCache(): void; } export declare const deviceManager: DeviceManager;