bridge.d.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. interface ScanData {
  2. code: string;
  3. state: number;
  4. type: number;
  5. message?: string;
  6. }
  7. export interface BridgeEventMap {
  8. scan: CustomEvent<{ code: number; data?: ScanData; message?: string }>;
  9. ['print:connect']: CustomEvent<{ code: number; data?: BridgePrinterDevice | true; message?: string }>;
  10. ['print:disconnect']: CustomEvent<{ code: number; data?: BridgePrinterDevice | true; message?: string }>;
  11. }
  12. export interface BridgePrinterDevice {
  13. type: 'wifi';
  14. ip?: string;
  15. port?: number;
  16. }
  17. export class Bridge extends EventTarget {
  18. public static getInstance(): Bridge;
  19. public static print(): Promise<void>;
  20. public static print(params: { url?: string }): Promise<void>;
  21. public static print(params: { tspl: String; device?: BridgePrinterDevice }): Promise<void>;
  22. public static scan(params?: { timeout?: number; signal?: AbortSignal }): Promise<ScanData>;
  23. /**
  24. * 监听扫码事件
  25. * @param type 事件类型 'scan'
  26. * @param listener 事件回调,参数为 ScanEvent
  27. * @param options
  28. */
  29. addEventListener<T extends keyof BridgeEventMap>(type: T, listener: (event: BridgeEventMap[T]) => void, options?: boolean | AddEventListenerOptions): () => void;
  30. removeEventListener<T extends keyof BridgeEventMap>(type: T, listener: (event: BridgeEventMap[T]) => void, options?: boolean | AddEventListenerOptions): () => void;
  31. postMessage(...args: any[]): Promise<void>;
  32. public printer: {
  33. connect(device: BridgePrinterDevice): Promise<[device: BridgePrinterDevice, onCleanup: () => Promise<BridgePrinterDevice>]>;
  34. disconnect(device: BridgePrinterDevice): Promise<BridgePrinterDevice>;
  35. };
  36. }