import type { BaseItem, State } from '@/utils/typings'; type DeviceType = { text: string; value: string; }; export type ProductItem = { id: string; name: string; classifiedId: string | string[]; classifiedName: string; configuration: Record; createTime: number; updateTime: number; creatorId: string; deviceType: DeviceType; deviceTypeId?: string; count?: number; messageProtocol: string; metadata: string; orgId: string; protocolName: string; state: number; transportProtocol: string; describe?: string; accessId?: string; accessName?: string; photoUrl?: string; storePolicy?: string; accessProvider?: string; modifyTime?: string; }; export type ConfigProperty = { property: string; name: string; description: string; type: { name: string; id: string; type: string; elements?: any[]; expands?: any; }; scopes: any[]; }; export type ConfigMetadata = { name: string; description: string; scopes: any[]; properties: ConfigProperty[]; }; export type MetadataType = 'events' | 'functions' | 'properties' | 'tags'; export type DeviceMetadata = { events: Partial[]; properties: Partial[]; functions: Partial[]; tags: Partial[]; }; export type MetadataItem = Partial & Record; type EventMetadata = { id: string; name: string; expands?: { eventType?: string; level?: string; } & Record; valueType: { type: string; properties: { id: string; name: string; dataType: string; valueType: { type: string; } & Record; }[]; }; description: string; }; type FunctionMetadata = { id: string; name: string; async: boolean; output: Record; inputs: ({ id: string; name: string; valueType: { type: string; } & Record; } & Record)[]; }; type PropertyMetadata = { id: string; name: string; dataType?: string; valueType: { type: string; } & Record; expands: Record; description?: string; // 运行状态处需要数据 list?: Record[]; }; type TagMetadata = { id: string; name: string; valueType: { type: string; } & Record; expands: Record; }; type AlarmRule = { actions: { configuration: Record; executor: string; }[]; productId: string; productName: string; properties: Record[]; shakeLimit: Record; triggers: Record[]; } & BaseItem; type AlarmSetting = { state: State; createTime: number; target: string; targetId: string; alarmRule: AlarmRule[]; } & BaseItem; type AlarmRecord = { id: string; alarmId: string; alarmName: string; alarmTime: number; description: string; deviceId: string; deviceName: string; productId: string; productName: string; state: string; updateTime: number; alarmData: { alarmId: string; alarmName: string; deviceId: string; deviceName: string; id: string; productId: string; productName: string; timestamp: number; } & Record; }; type UnitType = { id: string; name: string; description: string; symbol: string; text: string; type: string; value: string; }; type ObserverMetadata = { type: unknown[]; subscribe: (data: any) => void; next: (data: any) => void; };