@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
34 lines (33 loc) • 983 B
TypeScript
import { Observable } from 'rxjs';
export interface EditableDataStreamInterface<DataType> {
/**
* Values observable
*/
values: Observable<DataType>;
/**
* Read value.
* It may also trigger a value changed event
*/
read(): Promise<DataType>;
/**
* Write given value
* @param value
*/
write(value: DataType): Promise<any>;
}
export interface DataSourceProviderInterface {
getAvailableStreamIds(): string[];
/**
* @deprecated no usefull anymore as getStream() can return any type including an editable stream
* @param streamId
* @returns
*/
getEditableStream(streamId: string): Observable<undefined | EditableDataStreamInterface<unknown>>;
getStream<T = unknown>(streamId: string): Observable<T>;
/**
* Notify value on given data stream
* @param streamId
* @param value
*/
notifyValue<T>(streamId: string, value: T): void;
}