import { EventEmitter } from '../core/EventEmitter'; import { IPrinterAdapter } from '../types'; export interface DiscoveredDevice { id: string; name: string; deviceId: string; rssi?: number; appearance?: number; manufacturerData?: DataView; serviceData?: Map; txPowerLevel?: number; lastSeen: number; discoveredCount: number; } export interface DiscoveryOptions { filters?: DeviceFilter[]; sortBy?: SortOption[]; timeout?: number; maxDevices?: number; enableCache?: boolean; cacheExpiry?: number; autoRetry?: boolean; retryInterval?: number; maxRetries?: number; } export interface DeviceFilter { name?: string | string[]; namePattern?: RegExp; rssiThreshold?: number; manufacturerId?: number; manufacturerDataPrefix?: Uint8Array; serviceUUIDs?: string[]; appearance?: number[]; } export type SortOption = 'rssi' | 'name' | 'lastSeen' | 'discoveredCount'; export interface DiscoveryEvents { 'device-found': DiscoveredDevice; 'device-updated': DiscoveredDevice; 'device-lost': DiscoveredDevice; 'discovery-start': void; 'discovery-stop': void; 'discovery-complete': DiscoveredDevice[]; 'discovery-error': Error; retry: { attempt: number; maxRetries: number; }; } /** * DiscoveryService - 增强型打印机发现服务 */ export declare class DiscoveryService extends EventEmitter { private discoveredDevices; private options; private isDiscovering; private stopTimeout; private platformAdapter?; constructor(options?: DiscoveryOptions); /** * 设置平台适配器 */ setPlatformAdapter(adapter: IPrinterAdapter): void; /** * 开始发现设备 */ startDiscovery(): Promise; /** * 停止发现 */ stopDiscovery(): void; /** * 获取过滤和排序后的设备列表 */ getDevices(): DiscoveredDevice[]; /** * 获取单个设备 */ getDevice(deviceId: string): DiscoveredDevice | undefined; /** * 获取所有发现的设备 (不过滤) */ getAllDevices(): DiscoveredDevice[]; /** * 获取设备数量 */ getDeviceCount(): number; /** * 手动添加设备到缓存 */ addDevice(device: Partial & { deviceId: string; }): DiscoveredDevice; /** * 移除设备 */ removeDevice(deviceId: string): boolean; /** * 清除设备缓存 */ clearCache(): void; /** * 清除过期缓存 */ private clearExpiredCache; /** * 更新过滤选项 */ setFilters(filters: DeviceFilter[]): void; /** * 添加过滤器 */ addFilter(filter: DeviceFilter): void; /** * 清除过滤器 */ clearFilters(): void; /** * 更新排序选项 */ setSortOptions(sortBy: SortOption[]): void; /** * 获取服务状态 */ getStatus(): { isDiscovering: boolean; deviceCount: number; filters: number; sortBy: SortOption[]; nextRetry?: number; }; /** * 等待发现指定设备 */ waitForDevice(predicate: (device: DiscoveredDevice) => boolean, timeout?: number): Promise; /** * 销毁服务 */ destroy(): void; } export declare const discoveryService: DiscoveryService; export default DiscoveryService;