import { HomieDevice } from "./HomieDevice"; import { Observable } from "rxjs"; import { HomieNode } from "./HomieNode"; import { HomieProperty } from "./HomieProperty"; import { DeviceSelector, NodeSelector, ObjectMap, PropertySelector } from "./model"; /** * Searches for a device - will emit regardless if the device is found or not. if not found Observable of undefined will be returned * * @param devices$ Observable of devices * @param deviceSelector * @param debounce * @param distinct * @returns Obeservable of the device or of undefined if not found */ export declare function findDevice(devices$: Observable>, deviceSelector: DeviceSelector, debounce?: number, distinct?: boolean): Observable; /** * Selects a device - will _only_ emit _if_ the device is _found_ * @param devices$ * @param deviceSelector * @param debounce * @param distinct * @returns Observable of a devices */ export declare function selectDevice(devices$: Observable>, deviceSelector: DeviceSelector, debounce?: number, distinct?: boolean): Observable; export declare function findNode(devices$: Observable>, nodeSelector: NodeSelector, debounce?: number, distinct?: boolean): Observable; export declare function selectNode(devices$: Observable>, nodeSelector: NodeSelector, debounce?: number, distinct?: boolean): Observable; export declare function findProperty(devices$: Observable>, propertySelector: PropertySelector, debounce?: number, distinct?: boolean): Observable; export declare function selectProperty(devices$: Observable>, propertySelector: PropertySelector, debounce?: number, distinct?: boolean): Observable; export declare function makeDeviceSelector(devices$: Observable>, selector: DeviceSelector, predicate: (v: HomieDevice) => Observable, debounce?: number, distinct?: boolean): Observable; export declare function makeNodeSelector(devices$: Observable>, selector: NodeSelector, predicate: (v: HomieNode) => Observable, debounce?: number, distinct?: boolean): Observable; export declare function makePropertySelector(devices$: Observable>, selector: PropertySelector, predicate: (v: HomieProperty) => Observable, mandatory?: boolean, debounce?: number, distinct?: boolean): Observable;