UNPKG

@di-zed/yandex-smart-home

Version:

The Yandex Smart Home skills for the different device types.

173 lines (172 loc) 4.68 kB
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;