import BaseBound, { IBoundPluginMap } from './base';
export declare type IProxyBindingStorage<T extends object> = {
    [key in keyof T]: T[key] extends object ? IProxyBindingStorage<T[key]> : ProxyHandler<T>;
};
export default class ProxyBound<T extends object> extends BaseBound<T> {
    storage: IProxyBindingStorage<T>;
    constructor(obj: T, plugins?: IBoundPluginMap<T>);
    bind<U extends T>(obj: U, twoWay?: boolean): this;
    unbind<U extends T>(obj: U): U;
}
