import type { BaseResponsiveProps } from '../../../responsive/type'; 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; }; export interface SaasAppDevicePlanningProps extends BaseResponsiveProps { kind?: DeviceKind; typeCode?: string; modelCode?: string; showBack?: boolean; onBack?: () => void; onLinked?: (params: DeviceLinkedParams) => void | Promise; } export interface DeviceLinkedParams { device: DeviceItem | null; channel: string; } export interface WorkAreaItem { id: number; tenant_id?: number; name: I18nText; description?: I18nText; sort: number; created_at?: string; updated_at?: string; } export interface DeviceTypeItem { id: number; kind: DeviceKind; code: string; icon?: string | null; name: I18nText; description?: I18nText; status?: string; sort?: number; active_models?: DeviceModelItem[]; } export interface DeviceModelItem { id: number; brand_code?: string; type_code: string; code: string; name: I18nText; description?: I18nText; data?: { profile_structure?: { required?: boolean; tabs?: unknown[]; }; [key: string]: unknown; } | null; status?: string; sort?: number; active_profiles?: DeviceProfileItem[]; type?: DeviceTypeItem; brand?: { code?: string; name?: I18nText; [key: string]: unknown; }; } export interface DeviceProfileItem { id: number; model_code?: string; template_code?: string; name?: I18nText; description?: I18nText; setting?: Record | null; status?: string; } 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; } export interface ListDeviceParams { with?: string[]; workarea_id?: number; type_kind?: DeviceKind; type_code?: string; model_code?: string; profile_id?: number; } export interface SaveWorkAreaPayload { name: LangDict; description: LangDict; } export interface CreateDevicePayload { workarea_id: number; model_code: string; profile_id: number | null; name: LangDict; } export interface UpdateDevicePayload { workarea_id: number; profile_id: number | null; name: LangDict; } export interface DeviceRow { id: number; name: string; typeName: string; modelName: string; profileName: string; link: DeviceLinkStatus; status: DeviceOnlineStatus; typeCode: string; modelCode: string; isCurrent?: boolean; isLastUsed?: boolean; _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; export declare const validateI18nRequired: (message: string) => (_rule: unknown, value: I18nText | undefined) => Promise;