/** * Important: * --------------- * Model files should not use external imports except for other model files. * Other model files should also be imported directly not via their module * this can otherwise cause issue with ts-to-json-schema conversions in certain scenarios * */ import { Observable } from "rxjs"; import { HomieNode, HomieProperty, HomieDevice } from ".."; import { HomieID } from "./Base.model"; import { DevicePointer, NodePointer, PropertyPointer } from "./Base.model"; export declare type DeviceSelector = DevicePointer | DeviceDesignator; export declare function isDeviceSelector(selector: unknown): selector is DeviceSelector; export declare type NodeSelector = NodePointer | NodeDesignator; export declare function isNodeSelector(selector: unknown): selector is NodeSelector; export declare type PropertySelector = PropertyPointer | PropertyDesignator; export declare function isPropertySelector(selector: unknown): selector is PropertySelector; export declare type SelectorOptions = { selector: DeviceSelector; predicate: (v: HomieDevice) => Observable; } | { selector: NodeSelector; predicate: (v: HomieNode) => Observable; } | { selector: PropertySelector; predicate: (v: HomieProperty) => Observable; }; export interface DeviceDesignator { deviceId: HomieID; } export declare function isDeviceDesignator(designator: any): designator is DeviceDesignator; export interface NodeDesignator extends DeviceDesignator { nodeId: HomieID; } export declare function isNodeDesignator(designator: any): designator is NodeDesignator; export interface PropertyDesignator extends NodeDesignator { propertyId: HomieID; } export declare function isPropertyDesignator(designator: any): designator is PropertyDesignator;