@di-zed/yandex-smart-home
Version:
The Yandex Smart Home skills for the different device types.
173 lines (172 loc) • 4.68 kB
TypeScript
import { UserInterface } from '../models/userModel';
import { Device } from '../devices/device';
import { RequestOutput } from '../providers/httpProvider';
import { TopicData } from './mqttService';
/**
* Skill Service.
*/
declare class SkillService {
/**
* Temporary User Devices.
*
* @protected
*/
protected tempUserDevices: TempUserDevices;
/**
* Temporary User State Callbacks.
*
* @protected
*/
protected tempUserStateCallbacks: TempUserStateCallbacks;
/**
* Yandex Callbacks initialization.
*
* @param topic
* @param oldMessage
* @param newMessage
* @returns Promise<boolean>
*/
initYandexCallbacks(topic: string, oldMessage: string | undefined, newMessage: string): Promise<boolean>;
/**
* Execute temporary user state callback.
*
* @param user
* @param devices
* @returns Promise<RequestOutput | boolean>
*/
execTempUserStateCallback(user: UserInterface, devices: Device[]): Promise<RequestOutput | boolean>;
/**
* Notification about device state change.
* https://yandex.ru/dev/dialogs/smart-home/doc/en/reference-alerts/post-skill_id-callback-state
*
* @param userId
* @param devices
* @returns Promise<RequestOutput | boolean>
*/
callbackState(userId: string | number, devices: Device[]): Promise<RequestOutput | boolean>;
/**
* Notification about device parameter change.
* https://yandex.ru/dev/dialogs/smart-home/doc/en/reference-alerts/post-skill_id-callback-discovery
*
* @param userId
* @returns Promise<RequestOutput | boolean>
*/
callbackDiscovery(userId: string | number): Promise<RequestOutput | boolean>;
/**
* Get UNIX Timestamp.
*
* @returns number
*/
getUnixTimestamp(): number;
/**
* Log the latest Skill Update for the User.
*
* @param email
* @param devices
* @returns Promise<boolean>
*/
logLatestSkillUpdate(email: string, devices: Device[]): Promise<boolean>;
/**
* Get the latest logged Skill Update for the User.
*
* @param email
* @returns Promise<LogUserSkillUpdate | undefined>
*/
getLatestSkillUpdate(email: string): Promise<LogUserSkillUpdate | undefined>;
/**
* Is Callback State Available?
*
* @param topicData
* @param oldMessage
* @param newMessage
* @returns Promise<boolean>
*/
isCallbackStateAvailable(topicData: TopicData, oldMessage: string | undefined, newMessage: string): Promise<boolean>;
/**
* Check if the State Topic has been changed.
*
* @param oldMessage
* @param newMessage
* @param deviceType
* @returns Promise<boolean>
*/
isStateTopicChanged(oldMessage: string | undefined, newMessage: string, deviceType?: string): Promise<boolean>;
/**
* Check if the device has the wrong property with the "event" type.
*
* @param user
* @param updatedDevice
* @returns Promise<boolean>
* @protected
*/
protected isDeviceParameterChanged(user: UserInterface, updatedDevice: Device): Promise<boolean>;
/**
* Add Temporary User Device.
*
* @param user
* @param updatedDevice
* @returns Promise<TempTimeoutDevices>
* @protected
*/
protected addTempUserDevice(user: UserInterface, updatedDevice: Device): Promise<TempTimeoutDevices>;
/**
* Get Payload Device.
*
* @param device
* @returns Device
* @protected
*/
protected getPayloadDevice(device: Device): Device;
/**
* Delete Temporary User Devices.
*
* @param user
* @returns void
* @protected
*/
protected deleteTempUserDevices(user: UserInterface): void;
}
/**
* Temp Payload Devices Type.
*/
export type TempPayloadDevices = {
/**
* Device ID => Payload Device.
*/
[key: string]: Device;
};
/**
* Temp Timeout Devices Type.
*/
export type TempTimeoutDevices = {
timeoutId: any;
payloadDevices: TempPayloadDevices;
isDeviceParameterChanged: boolean;
};
/**
* Log User Skill Update Type.
*/
export type LogUserSkillUpdate = {
devices: Device[];
updatedAt: number;
};
/**
* Temporary User Devices Type.
*/
export type TempUserDevices = {
/**
* User ID => Timeout Devices.
*/
[key: string | number]: TempTimeoutDevices;
};
/**
* Temporary User State Callbacks Type.
*/
export type TempUserStateCallbacks = {
/**
* User ID => True/False.
*/
[key: string | number]: boolean;
};
declare const _default: SkillService;
export default _default;