interface ScanData { code: string; state: number; type: number; message?: string; } export interface BridgeEventMap { scan: CustomEvent<{ code: number; data?: ScanData; message?: string }>; ['print:connect']: CustomEvent<{ code: number; data?: BridgePrinterDevice | true; message?: string }>; ['print:disconnect']: CustomEvent<{ code: number; data?: BridgePrinterDevice | true; message?: string }>; } export interface BridgePrinterDevice { type: 'wifi'; ip?: string; port?: number; } export class Bridge extends EventTarget { public static getInstance(): Bridge; public static print(): Promise; public static print(params: { url?: string }): Promise; public static print(params: { tspl: String; device?: BridgePrinterDevice }): Promise; public static scan(params?: { timeout?: number; signal?: AbortSignal }): Promise; /** * 监听扫码事件 * @param type 事件类型 'scan' * @param listener 事件回调,参数为 ScanEvent * @param options */ addEventListener(type: T, listener: (event: BridgeEventMap[T]) => void, options?: boolean | AddEventListenerOptions): () => void; removeEventListener(type: T, listener: (event: BridgeEventMap[T]) => void, options?: boolean | AddEventListenerOptions): () => void; postMessage(...args: any[]): Promise; public printer: { connect(device: BridgePrinterDevice): Promise<[device: BridgePrinterDevice, onCleanup: () => Promise]>; disconnect(device: BridgePrinterDevice): Promise; }; }