import React from "react"; //#region src/pro/posPermission/index.d.ts type PosPermissionKey = 'order_edit' | 'order_refund_amount' | 'order_refund_item' | 'discount'; /** 由 WebPOS 宿主注册;组件库不依赖宿主的 PIN、账号或网络实现。 */ interface PosPermissionService { hasPermission: (permissionKey: PosPermissionKey) => boolean; authorize: (permissionKey: PosPermissionKey, options?: { signal?: AbortSignal; }) => Promise; } interface UsePosPermissionOptions { /** 默认读取 appHelper.utils.isWebPos,非 WebPOS 保持原业务行为。 */ enabled?: boolean; /** 订单 / 商品标识改变时取消尚未完成的授权。 */ scopeKey?: unknown; /** 缓存页面 / 弹窗隐藏时置为 false。 */ active?: boolean; /** 在点击和授权完成时重新检查现有业务可操作状态。 */ isAvailable?: () => boolean; } /** 按点击读取最新权限;直接放行保持同步,仅被拦截的操作等待一次授权。 */ declare function usePosPermission(options?: UsePosPermissionOptions): { hasPermission: (permissionKey: PosPermissionKey) => boolean; runWithPermission: (permissionKey: PosPermissionKey, callback: () => T) => T | Promise | undefined> | undefined; }; interface ClickableProps { onClick?: React.MouseEventHandler; disabled?: boolean; loading?: unknown; 'aria-disabled'?: boolean | 'true' | 'false'; } interface PosPermissionProps extends UsePosPermissionOptions { permissionKey: PosPermissionKey; children: React.ReactElement; } /** 类似 Popconfirm,保留子元素的 onClick;自定义子组件必须透传 onClick。 */ declare function PosPermission({ permissionKey, children, ...options }: PosPermissionProps): React.ReactElement>; //#endregion export { PosPermission, PosPermissionKey, PosPermissionProps, PosPermissionService, UsePosPermissionOptions, usePosPermission };