import { NativeResult, Result } from '../models/modules/Result';
export declare enum UADeviceCategory {
    ThirdParty = "ThirdParty",
    General = "General",
    LightSource = "LightSource",
    CeilingLight = "CeilingLight",
    CeilingFan = "CeilingFan",
    SterilizedCeilingFan = "SterilizedCeilingFan",
    PIRLight = "PIRLight",
    SolarLight = "SolarLight",
    StringLights = "StringLights",
    StripLights = "StripLights",
    PowerStrip = "PowerStrip",
    NightlightPlug = "NightlightPlug",
    WifiPlug = "WifiPlug",
    ChildLockPlug = "ChildLockPlug",
    RepeaterSocket = "RepeaterSocket",
    ContactSensor = "ContactSensor",
    MotionDetector = "MotionDetector",
    PIRCamera = "PIRCamera",
    LinkageCamera = "LinkageCamera",
    SmartCamera = "SmartCamera",
    MatterLight = "MatterLight",
    MeshLight = "MeshLight",
    MeshSwitch = "MeshSwitch"
}
export interface DeviceInfo {
    deviceId: string;
    deviceName: string;
    deviceIcon: string;
    tyPid: string;
    deviceCategory: UADeviceCategory;
    roomName: string;
    status: number;
}
declare type GetFeatureResultType = (deviceId: string, featureId: string) => Promise<NativeResult<any>>;
declare type SetFeatureResultType = (deviceId: string, featureId: string, value: any) => Promise<NativeResult<any>>;
export declare const getFeature: GetFeatureResultType;
export declare const putFeature: SetFeatureResultType;
export declare class NativeApi {
    static back(): void;
    static log(msg: string): void;
    static logObj(msg: any): void;
    static showObj(obj: any): void;
    static getAllTaskTimer(devId: string, type?: number): Promise<Result<any>>;
    static timerList(deviceId: string): Promise<any>;
    static addTimer(deviceId: string, value: any, callback?: (res: any) => void): void;
    static editTimer(deviceId: string, value: any, callback?: (res: any) => void): void;
    static deleteTimer(deviceId: string, value: any, callback?: (res: any) => void): void;
    static setDp<T>(deviceId: string, key: string, value: any): Promise<NativeResult<T>>;
    static setDps<T>(deviceId: string, dps: any): Promise<NativeResult<T>>;
    static deleteDevice(deviceId: string, isReset: boolean): Promise<NativeResult<any>>;
    static renameDevice(deviceId: string, name: string): Promise<NativeResult<any>>;
    static toDeviceSettingsPage(deviceId: string, isGroup?: boolean): void;
    static toRoutinesPage(params: {
        backTitle: string;
        deviceId: string;
    }): void;
    static putJson(deviceId: string, featureType: string, json: string): Promise<Result<any>>;
    static getJson(deviceId: string, featureType: string): Promise<Result<any>>;
    static groupControl(tyGroupId: number, dps: string, config: string): Promise<Result<any>>;
    static getGroupDevices(tyGroupId: number): Promise<Result<DeviceInfo[]>>;
}
export declare const openDownloadFile: (filePath: string) => Promise<unknown>;
export declare const queryDpIds: (dpIds: string, deviceId: string) => Promise<unknown>;
export declare const formatNumber: (num: number, fixed: number, shoGroup?: boolean) => string;
export declare const getTimeZone: () => string;
export declare const getSystemTimeFormat: () => Promise<number>;
export declare const getMicrophoneAccess: () => Promise<boolean>;
export declare const getTuyaCloudData: (devId: string) => Promise<Record<string, any>>;
export {};
