import type React from 'react'; export declare type DeviceKind = 'smart' | 'dumb' | 'integrated'; export declare type DeviceLinkStatus = 'linked' | 'unlinked' | string; export declare type DeviceOnlineStatus = 'online' | 'offline' | 'unknown' | string; /** 多语言字段,后端可能返回字符串或语言字典。 */ export declare type I18nText = string | { original?: string; 'zh-CN'?: string; 'zh-HK'?: string; en?: string; ja?: string; pt?: string; [key: string]: any; }; export declare type LangDict = { original?: string; en?: string; 'zh-CN'?: string; 'zh-HK'?: string; ja?: string; pt?: string; }; /** SaasDevicePlanning 低代码物料的对外 props。 */ export interface SaasDevicePlanningProps { className?: string; style?: React.CSSProperties; } /** 工作区,设备规划左侧列表的基本单元。 */ export interface WorkAreaItem { id: number; tenant_id?: number; name: I18nText; description?: I18nText; sort: number; smart_devices_count?: number; dumb_devices_count?: number; integrated_devices_count?: number; created_at?: string; updated_at?: string; } /** 设备品牌,主要用于外设型号筛选。 */ export interface DeviceBrandItem { id: number; code: string; name: I18nText; description?: I18nText; website?: string; status?: string; created_at?: string; updated_at?: string; deleted_at?: string | null; } /** 设备类型,例如 POS、Receipt Printer;一个类型下可包含多个型号。 */ export interface DeviceTypeItem { id: number; kind: DeviceKind; code: string; icon?: string | null; name: I18nText; description?: I18nText; status?: string; sort?: number; active_models?: DeviceModelItem[]; } /** 设备型号,创建设备和连接新增外设时都以 model_code 为核心。 */ export interface DeviceModelItem { id: number; brand_code?: string; type_code: string; type?: DeviceTypeItem; code: string; name: I18nText; description?: I18nText; data?: { profile_structure?: { required?: boolean; tabs?: unknown[]; }; connection_types?: string[]; [key: string]: unknown; } | null; status?: string; sort?: number; active_profiles?: DeviceProfileItem[]; brand?: DeviceBrandItem; } /** 设备配置方案,智能设备和外设连接时可绑定多个 profile。 */ export interface DeviceProfileItem { id: number; model_code?: string; template_code?: string; name?: I18nText; description?: I18nText; setting?: Record | null; status?: string; } /** 后端设备实体,smart/dumb/integrated 三类设备共用。 */ export interface DeviceItem { id: number; tenant_id?: number; workarea_id?: number; type_kind: DeviceKind; type_code: string; model_code: string; profile_id?: number | null; number?: string; name: I18nText; data?: Record | null; setting?: Record | null; link?: DeviceLinkStatus; status?: DeviceOnlineStatus; sort?: number; last_seen?: string; created_at?: string; updated_at?: string; type?: DeviceTypeItem; model?: DeviceModelItem; profile?: DeviceProfileItem | null; workarea?: WorkAreaItem; } /** 设备连接配置,网络连接时会带 connection_method 和 connection_ip。 */ export interface DeviceConnectionConfig { connection_ip?: string; connection_type?: string; connection_method?: string; [key: string]: unknown; } /** 设备连接业务类型;当前接口仅启用哑设备连接。 */ export declare type DeviceConnectionType = 'dumb'; /** 智能设备与外设的连接关系。 */ export interface DeviceConnectionItem { id: number; tenant_id?: number; type?: DeviceConnectionType; source_device_id: number; target_device_id: number; config?: DeviceConnectionConfig | null; profile_ids?: number[]; status?: string | null; created_at?: string; updated_at?: string; source_device?: DeviceItem | null; target_device?: DeviceItem | null; profiles?: DeviceProfileItem[]; } /** 设备列表查询参数。 */ export interface ListDeviceParams { with?: string[]; workarea_id?: number; type_kind?: DeviceKind; profile_id?: number; } /** 设备连接列表查询参数。source 和 target 通过不同 id 字段过滤。 */ export interface ListDeviceConnectionParams { type?: DeviceConnectionType; source_device_id?: number; target_device_id?: number; with?: string[]; } /** 保存工作区的表单 payload。 */ export interface SaveWorkAreaPayload { name: LangDict; description: LangDict; } /** 单独创建设备的 payload,由 AddDeviceModal 提交。 */ export interface CreateDevicePayload { workarea_id: number; model_code: string; profile_id: number | null; name: LangDict; } /** 连接流程里“新增外设并连接”时嵌套创建的目标设备 payload。 */ export interface CreateConnectionTargetDevicePayload { workarea_id: number; model_code: string; name: LangDict; } /** 创建连接的 payload,支持连接已有外设或新增外设后连接。 */ export interface CreateDeviceConnectionPayload { type: DeviceConnectionType; source_device_id: number; target_device_id?: number; target_device?: CreateConnectionTargetDevicePayload; target_device_action: 'existing' | 'new'; config: DeviceConnectionConfig; profile_ids: number[]; } /** 更新连接配置的 payload,仅更新 config 和 profile_ids。 */ export interface UpdateDeviceConnectionPayload { config: DeviceConnectionConfig; profile_ids: number[]; } /** 编辑设备时允许更新工作区、名称和 smart profile。 */ export interface UpdateDevicePayload { workarea_id: number; profile_id: number | null; name: LangDict; } /** 表格/详情抽屉使用的展示模型,保留 _raw 以便提交时读取原始字段。 */ export interface DeviceRow { id: number; name: string; typeName: string; modelName: string; profileName: string; link: DeviceLinkStatus; status: DeviceOnlineStatus; typeCode: string; modelCode: string; _raw: DeviceItem; } /** 删除工作区前用于判断是否阻断删除的设备数量。 */ export interface DeleteWorkAreaCounts { smart: number; dumb: number; integrated: number; } export declare const EMPTY_I18N: LangDict; export declare const DEVICE_KIND_OPTIONS: DeviceKind[]; /** 统一把后端多语言值转成可编辑表单需要的语言字典。 */ export declare const toLangDict: (val?: I18nText) => LangDict; /** 校验 BaseTranslation 字段是否至少填写 original 或任一语言值。 */ export declare const validateI18nRequired: (message: string) => (_rule: unknown, value: I18nText | undefined) => Promise;