import { DpSchema } from '../../types';
import { SmartSupportAbility } from '../abilities';
export interface SupportAbilityMethods {
/** 判断设备是否支持指定功能点 */
isSupportDp: (dpCode: string, isForce?: boolean) => boolean;
/** 判断设备是否支持白光亮度 */
isSupportBright: (isForce?: boolean) => boolean;
/** 判断设备是否支持色温 */
isSupportTemp: (isForce?: boolean) => boolean;
/** 判断设备是否支持彩光 */
isSupportColour: (isForce?: boolean) => boolean;
/** 判断设备是否支持云端定时 */
isSupportCloudTimer: () => boolean;
/** 判断是否支持 Matter 白光 */
isSupportMatterWhite: (force?: boolean) => boolean;
/** 判断设备是否已添加到网关下 */
isInGateway: () => boolean;
/** 判断当前是否是群组设备 */
isGroupDevice: () => boolean;
/** 判断设备是否具有指定的协议能力(入参为 DeviceCapability 枚举值) */
hasCapability: (id: number) => boolean;
/** 判断是否是 WiFi 设备 */
isWifiDevice: () => boolean;
/** 判断是否是 GPRS 设备 */
isGprsDevice: () => boolean;
/** 判断是否是蓝牙 Bluetooth 设备 */
isBluetoothDevice: () => boolean;
/** 判断是否是 BLE Mesh 设备 */
isBleMeshDevice: () => boolean;
/** 判断是否是 Zigbee 设备 */
isZigbeeDevice: () => boolean;
/** 判断是否是 SIG Mesh 设备 */
isSigMeshDevice: () => boolean;
/** 判断是否是蓝牙类设备(含 Bluetooth / BLE Mesh / SIG Mesh) */
isBleDevice: () => boolean;
/** 判断是否是 Cat.1 设备 */
isCat1Device: () => boolean;
/** 判断是否是 Beacon 设备 */
isBeaconDevice: () => boolean;
/** 判断是否是 LTE Cat.4 设备 */
isLteCat4Device: () => boolean;
/** 判断是否是 LTE Cat.10 设备 */
isLteCat10Device: () => boolean;
/** 判断是否是 LTE Cat.M 设备 */
isLteCatMDevice: () => boolean;
/** 判断是否是 Thread 设备 */
isThreadDevice: () => boolean;
/** 判断是否是 Matter 设备(含涂鸦 Matter 和三方 Matter) */
isMatterDevice: () => boolean;
/** 判断是否是涂鸦 Matter 设备(排除三方 Matter) */
isTuyaMatterDevice: () => boolean;
/** 判断是否是三方 Matter 设备 */
isTripartiteMatter: () => boolean;
}
/**
* 获取设备能力检测实例,用于判断设备支持的功能与协议
* @public
* @since @ray-js/panel-sdk 1.10.0
* @returns SmartSupportAbility 实例对象
* @typeOverride returns SupportAbilityMethods
* @remarks
* 使用前需同时满足两个条件:
* 1. 项目已挂载 SdmProvider
* 2. SmartDeviceModel 初始化时已配置 SmartSupportAbility
* @example
* ```tsx
* import { useSupport } from '@ray-js/panel-sdk';
*
* function SupportPage() {
* const support = useSupport();
* return (
*
* {support.isSupportCloudTimer() ? '支持云定时' : '不支持云定时'}
* {support.isSupportDp('switch_led') ? '有开关' : '无开关'}
*
* );
* }
* ```
*/
export declare function useSupport(): SmartSupportAbility;