import { Ref } from 'vue'; declare type LocalComputed = { get: () => T; set: (v: T) => any; }; declare type Path = (string | symbol | number)[]; declare type DeepComputedConf = { proxy?: (target: any, p: Path, value: any, receiver: any) => void; enableClone?: boolean; debounceSet?: number; debounceGet?: number; }; /** * 能够确保进行深度嵌套对象或数组修改时,依旧使用set进行提交的computed。 * 可以在保证flux架构的理念下减少中间变量的产生,以及外部数据变化时的手动管理 * * 出于性能考虑,监听的深度在目标是object时是1层:[keyof T],array是2层[number, keyof T[number]] * * 实现原因.value外部不可修改, 如有需要修改的情况推荐直接使用deepComputed参数里的set(val)函数代替,反正没有中间变量 * * @param arg0 和vue的computed一样 * @param conf deepComputed的配置。其中proxy和ProxyHandler['set']类似,用于观察数据的变化 。例如用来debug @example (_, path, v) => console.log(path, v) */ export declare const deepComputed: ({ set, get }: LocalComputed, conf?: DeepComputedConf) => Readonly>; export {};