import { IDirective } from "../abstractions/IDirective"; import { UnwrapNestedRefs, UnwrapValueRefs } from "./common"; import { ArrayMethods } from "./handlers/arrayMethods"; export type ReactiveListeners = Map>>; export declare let currentFx: FxMapper | null; export interface IFxMapper { callback: any; directive: any; run(): any; dispose(): any; } export declare class FxMapper implements IFxMapper { engine: ReactiveEngine; constructor(engine: ReactiveEngine); callback: any; depends: Set; parentFx: FxMapper | null; directive: IDirective | null; run(): any; parent: any; dispose(): void; } export declare const ReactiveEngineMapper: WeakSet; export declare class ReactiveEngine { constructor(); dispose(): void; ReactiveMap: WeakMap; TargetMap: ReactiveListeners; activeCallback: any; isReadonly: boolean; superficial: boolean; arrayMethods: ArrayMethods; deepHandler: ProxyHandler; arrayHandler: { get: (target: any, p: any, receiver: any) => any; set: (target: any, p: any, newValue: any, receiver: any) => boolean; has: (target: any, p: any) => boolean; deleteProperty: (target: any, p: any) => boolean; }; reactive(model: T): UnwrapNestedRefs; hook(val: any): UnwrapValueRefs; effect(cb: () => any): void; dynamicRender(cb: () => any): any; registerEffect(dir: IDirective): IFxMapper; clearModel(model: any): Promise; track(model: any, key: any): void; trackEffects(dep: Set, model: any, key: any): void; trigger(model: any, key: any, value: any): void; cacheFx: Map>; cacheTimer: any; triggerEffects(dep: FxMapper[], key: any): void; triggerEffect(effect: FxMapper, key: any): void; ArrayTrigger(target: any, key: any, ...args: any[]): void; onValueChanged?: (model: any, key: any) => any; toRaw(item: any): any; }