import { IAtomComponent } from "./AtomComponent";
import { ObjectProperty } from "./AtomWatcher";
import { IValueConverter } from "./IValueConverter";
import { IAtomElement, IDisposable, PathList } from "./types";
export declare class PropertyBinding<T extends IAtomElement> implements IDisposable {
    private target;
    readonly element: T;
    readonly name: string;
    private twoWays;
    private source;
    path: ObjectProperty[][];
    private watcher;
    private twoWaysDisposable;
    private isTwoWaySetup;
    private updaterOnce;
    private fromSourceToTarget;
    private fromTargetToSource;
    private disposed;
    constructor(target: IAtomComponent<T> | any, element: T, name: string, path: PathList[], twoWays: boolean | string[], valueFunc: ((...v: any[]) => any) | IValueConverter, source: any);
    setupTwoWayBinding(): void;
    setInverseValue(value: any): void;
    dispose(): void;
}
//# sourceMappingURL=PropertyBinding.d.ts.map