///
import * as exposes from './exposes';
import { Fz, Definition, KeyValue, KeyValueAny } from './types';
declare type Day = 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun';
export interface TrvScheduleConfigEvent {
time: number;
temperature: number;
}
export interface TrvScheduleConfig {
days: Day[];
events: TrvScheduleConfigEvent[];
}
export declare const buffer2DataObject: (meta: Fz.Meta, model: Definition, buffer: Buffer) => KeyValue;
export declare const numericAttributes2Payload: (msg: Fz.Message, meta: Fz.Meta, model: Definition, options: KeyValue, dataObject: KeyValue) => Promise;
export declare const VOCKQJK11LMDisplayUnit: {
mgm3_celsius: number;
ppb_celsius: number;
mgm3_fahrenheit: number;
ppb_fahrenheit: number;
};
export declare const numericAttributes2Options: (definition: Definition) => exposes.Numeric[];
export declare const fp1: {
constants: {
region_event_key: number;
region_event_types: {
Enter: number;
Leave: number;
Occupied: number;
Unoccupied: number;
};
region_config_write_attribute: number;
region_config_write_attribute_type: number;
region_config_cmds: {
/**
* Creates new region (or force replaces existing one)
* with new zones definition.
*/
create: number;
/**
* Modifies existing region.
* Note: unused, as it seems to break existing regions
* (region stops reporting new detection events).
* Use "create" instead, as it replaces existing region with new one.
*/
modify: number;
/**
* Deletes existing region.
*/
delete: number;
};
region_config_regionId_min: number;
region_config_regionId_max: number;
region_config_zoneY_min: number;
region_config_zoneY_max: number;
region_config_zoneX_min: number;
region_config_zoneX_max: number;
region_config_cmd_suffix_upsert: number;
region_config_cmd_suffix_delete: number;
};
mappers: {
aqara_fp1: {
region_event_type_names: {
[x: number]: string;
};
};
};
/**
* @param {undefined | Set} xCells
* @return {number}
*/
encodeXCellsDefinition: (xCells: number[]) => number;
/**
* @param {number} cellXIdx
* @return {number}
*/
encodeXCellIdx: (cellXIdx: number) => number;
/**
* @param {unknown} input
*/
parseAqaraFp1RegionDeleteInput: (input: KeyValueAny) => {
isSuccess: boolean;
error: {
reason: string;
};
} | {
/** @type true */
isSuccess: boolean;
payload: {
command: {
region_id: any;
};
};
};
/**
* @param {unknown} input
*/
parseAqaraFp1RegionUpsertInput: (input: KeyValueAny) => {
isSuccess: boolean;
error: {
reason: string;
};
} | {
/** @type true */
isSuccess: boolean;
payload: {
command: {
region_id: any;
zones: any[];
};
};
};
/**
* @param {unknown} value
* @returns {value is number}
*/
isAqaraFp1RegionId: (value: number) => boolean;
/**
* @param {unknown} value
* @returns {value is AqaraFP1RegionZone}
*/
isAqaraFp1RegionZoneDefinition: (value: KeyValueAny) => boolean;
/**
* @template {Record} ErrorType
* @param {ErrorType} error
* @return { { isSuccess: false, error: ErrorType } }
*/
failure: (error: {
reason: string;
}) => {
isSuccess: boolean;
error: {
reason: string;
};
};
};
export declare const trv: {
decodeFirmwareVersionString(value: number): string;
decodePreset(value: number): {
setup: boolean;
preset: string;
};
decodeHeartbeat(meta: Fz.Meta, model: Definition, messageBuffer: Buffer): KeyValue;
/**
* Decode a Zigbee schedule configuration message into a schedule configuration object.
* @param {Buffer} buffer
* @return {TrvScheduleConfig}
*/
decodeSchedule(buffer: Buffer): TrvScheduleConfig;
/**
* @param {TrvScheduleConfig} schedule
* @return {void}
*/
validateSchedule(schedule: TrvScheduleConfig): void;
/**
* Encodes a schedule object into Zigbee message format.
* @param {TrvScheduleConfig} schedule
* @return {Buffer}
*/
encodeSchedule(schedule: KeyValueAny): Buffer;
stringifySchedule(schedule: TrvScheduleConfig): string;
parseSchedule(stringifiedSchedule: string): TrvScheduleConfig;
};
export declare const manufacturerCode = 4447;
export {};
//# sourceMappingURL=xiaomi.d.ts.map