import { Observable, Observer, Subscription } from './observable'; import { Time } from './clock'; import { InteropObservableHolder } from './interop-observable'; import { AsyncIterable } from './async-iterator'; export interface Property extends Observable, AsyncIterable { readonly get: () => A; } export declare const newProperty: (get: () => A, subscribe: (observer: Observer; export declare const flatten: (source: Property>) => [Property, Subscription]; export declare const tap: (f: (a: A) => unknown) => (fa: Property) => Property; export declare const fromObservable: (initial: A, ma: Observable) => [Property, Subscription]; export declare const scan: (f: (acc: B, a: A) => B, initial: B) => (ma: Observable) => [Property, Subscription]; export declare type PropertyValue = Target extends Property ? A : never; export declare type MapPropertiesToValues[]> = { readonly [Index in keyof Target]: PropertyValue; }; export declare const combine: [], Result>(...args: readonly [...Properties, (...values: MapPropertiesToValues) => Result]) => Property;