import { Observable } from '../Observable';
import { MediatorObservable } from '../mediator/MediatorObservable';
import { OnNext } from '../types';
export declare class ColdMediatorObservable<T extends object> extends MediatorObservable<T> {
    private readonly handler;
    constructor(obj: T, handler?: PropertyAccessTrackingProxy<T>);
    set value(_: T);
    get value(): T;
    setValue(key: keyof T, value: any): void;
    addSource<S>(source: Observable<S>, onNext: OnNext<S>): this;
}
declare class PropertyAccessTrackingProxy<T extends object> implements ProxyHandler<T> {
    private readonly accessedProperties;
    private trackingSuspended;
    get(target: T, p: string | symbol, receiver: any): (string extends infer T_1 ? T_1 extends string ? T_1 extends keyof T ? T[T_1] : any : never : never) | (symbol extends infer T_2 ? T_2 extends symbol ? T_2 extends keyof T ? T[T_2] : any : never : never);
    hasAccessedProperty(key: keyof T): boolean;
    suspendTracking(): void;
    resumeTracking(): void;
}
export {};
//# sourceMappingURL=ColdMediatorObservable.d.ts.map