import { ListReaderParams, PaymentMethod, PaymentPayParams, PaymentProvider, PaymentReader, PaymentRefundParams, PaymentUsageScene } from "./payment.js"; import { PaymentAction, PaymentError, PaymentFlowEvent } from "./interaction.js"; //#region src/plus/piPaymentOld/sdk/contracts/session.d.ts /** Session 分配交易号后、Flow 启动前发出的首个事件。 */ interface PaymentAttemptCreatedEvent { type: 'attemptCreated'; operation: 'pay' | 'refund'; number: string; } /** 异步刷卡设备查询的结果事件。 */ type PaymentReaderListEvent = { type: 'readerList'; status: 'success'; readers: PaymentReader[]; } | { type: 'readerList'; status: 'failed'; error: PaymentError; }; /** Session 对宿主暴露的事件全集。 */ type PaymentSessionEvent = PaymentReaderListEvent | PaymentAttemptCreatedEvent | PaymentFlowEvent; /** 创建 Session 所需的固定业务路由与事件回调。 */ interface PaymentSessionCreateOptions { paymentMethod: PaymentMethod; paymentProvider: PaymentProvider; salesId: string; usageScene?: PaymentUsageScene; onChange: (event: PaymentSessionEvent) => void; } /** 宿主操作单笔支付生命周期的公开接口。 */ interface PaymentSession { readonly sessionId: string; listReader(params?: ListReaderParams): void; pay(params: PaymentPayParams): void; refund(params: PaymentRefundParams): void; action(action: PaymentAction, inputValues?: Record): void; destroy(): void; } //#endregion export { PaymentAttemptCreatedEvent, PaymentReaderListEvent, PaymentSession, PaymentSessionCreateOptions, PaymentSessionEvent };