import { Observer } from "./Observer";
import { ReactiveMethods } from "./types";
import { Ref } from "../core";
export declare function withReactiveMethods<Instance, Names extends keyof Partial<Instance>, Return extends ReactiveMethods<Instance, Names>>(ref: Ref<Instance>, methods?: readonly Names[]): Return;
export declare function observe<Type>(defaultValue?: Type): Observer<Type>;
export declare function defineObservers(instance: any): Record<string, Observer<any>>;
export declare function getObservers(instance: any): Record<string, Observer<any>>;
export declare function getObserver(instance: any, name: string, defaultValue?: any): Observer<any>;
export declare function setObserver(instance: any, name: string, observer: Observer<any>): void;
export declare function isObserver(val: any): val is Observer;
