import { Observer } from "../Observer"; export declare type GetMiddle = (argv: { root: any; path: string; parentPath: string; parent: any; key: string; value: any; ob: Observer; }) => any; export declare type BeforeSetMiddle = (argv: { root: any; path: string; parentPath: string; parent: any; key: string; value: any; newValue: any; ob: Observer; }) => any; export declare type AfterSetMiddle = (argv: { root: any; path: string; parentPath: string; parent: any; key: string; value: any; newValue: any; ob: Observer; }) => void; export declare type BeforeApplyMiddle = (argv: { root: any; path: string; parentPath: string; parent: any; fn: any; isNative: boolean; isArray: boolean; key: string; argv: any[]; ob: Observer; }, newArgv: { root: any; path: string; parentPath: string; parent: any; fn: any; isNative: boolean; isArray: boolean; key: string; argv: any[]; ob: Observer; }) => { root: any; path: string; parentPath: string; parent: any; fn: any; isNative: boolean; isArray: boolean; key: string; argv: any[]; ob: Observer; }; export declare type AfterApplyMiddle = (argv: { root: any; path: string; parentPath: string; parent: any; fn: any; key: string; isNative: boolean; isArray: boolean; argv: any[]; newArgv: any[]; result: any; newResult: any; ob: Observer; }) => any; export declare type BeforeDeleteMiddele = (argv: { root: any; path: string; parentPath: string; key: string; parent: any; ob: Observer; }) => boolean; export declare type AfterDeleteMiddle = (argv: { root: any; path: string; parentPath: string; key: string; parent: any; ob: Observer; }) => void; export interface Middleware { get?: GetMiddle; beforeSet?: BeforeSetMiddle; afterSet?: AfterSetMiddle; beforeApply?: BeforeApplyMiddle; afterApply?: AfterApplyMiddle; beforeDelete?: BeforeDeleteMiddele; afterDelete?: AfterDeleteMiddle; }