import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs'; import { Property } from './Interfaces'; export declare class ObservableProperty extends Subscription implements Property { protected source: Observable; protected changedSubject: BehaviorSubject; protected thrownErrorsSubject: Subject; constructor(initialValue?: T, compare?: (x: T, y: T) => boolean, keySelector?: (x: T) => any, source?: Observable); readonly isReadOnly: boolean; value: T; readonly changed: Observable; readonly thrownErrors: Observable; isProperty(): boolean; } export declare function property(initialValue?: T, source?: Observable): Property; export declare function property(initialValue?: T, compare?: boolean | ((x: T, y: T) => boolean), source?: Observable): Property; export declare function property(initialValue?: T, compare?: boolean | ((x: T, y: T) => boolean), keySelector?: (x: T) => any, source?: Observable): Property;