export interface IProxifier < T extends object > { proxify ( state , path ) : T ; trackPath ( path ) : void ; } export interface IMutation { method : string ; delimiter : string ; path : string ; args : any [ ] ; hasChangedValue : boolean ; } export interface IMutationCallback { ( mutation , paths , flushId ) : void ; } export interface IMutationTree < T extends object > { addMutation ( mutation , objectChangePath ? ) : void ; onMutation ( callback ) : void ; canTrack ( ) : boolean ; canMutate ( ) : boolean ; getMutations ( ) : IMutation [ ] ; getObjectChanges ( ) : Set < string > ; trackPaths ( ) : ( ) => Set < string > ; flush ( async ? ) : { mutations : IMutation [ ] ; flushId : number ; } ; dispose ( ) : IMutationTree < T > ; objectChanges : Set < string > ; master : IProxyStateTree < T > ; proxifier : IProxifier < T > ; mutations : IMutation [ ] ; state : T ; trackPathListeners : Array < ( path : string ) => void > ; } export interface ITrackCallback { ( mutations , paths , flushId , isAsync ) : void ; } export interface ITrackScopedCallback < T extends object > { ( tree ) : any ; } export interface ITrackStateTree < T extends object > { addTrackingPath ( path ) : void ; track ( cb ? ) : ITrackStateTree < T > ; stopTracking ( ) : void ; trackScope ( scope , callback ? ) : any ; trackPaths ( ) : ( ) => Set < string > ; canTrack ( ) : boolean ; canMutate ( ) : boolean ; dispose ( ) : ITrackStateTree < T > ; clearTracking ( ) : void ; master : IProxyStateTree < T > ; shouldTrack : boolean ; proxifier : IProxifier < T > ; state : T ; pathDependencies : Set < string > ; callback : ITrackCallback ; trackPathListeners : Array < ( path : string ) => void > ; } export interface IOptions { delimiter ? : string ; devmode ? : boolean ; ssr ? : boolean ; onSetFunction ? : ( ... args : any [ ] ) => any ; onGetFunction ? : ( ... args : any [ ] ) => any ; onGetter ? : Function ; } export interface IFlushCallback { ( mutations , paths , flushId , isAsync ) : void ; } export type TTree = IMutationTree < any > | ITrackStateTree < any > ; export interface IRemoveProxyCallback { ( path ) : void ; } export interface IProxyStateTree < T extends object > { addPathDependency ( path , callback ) : void ; removePathDependency ( path , callback ) : void ; getTrackStateTree ( ) : ITrackStateTree < T > ; getMutationTree ( ) : IMutationTree < T > ; changeTrackStateTree ( tree ) : void ; disposeTree ( proxy ) : void ; onMutation ( cb ) : void ; flush ( tree , isAsync ) : { mutations : IMutation [ ] ; flushId : number ; } ; flush ( trees , isAsync ) : { mutations : IMutation [ ] ; flushId : number ; } ; onFlush ( cb ) : void ; rescope ( value , tree ) : any ; sourceState : T ; state : T ; options : IOptions ; pathDependencies : { [ path ] : Set < ITrackCallback > ; } ; master : IProxyStateTree < T > ; proxifier : IProxifier < T > ; currentTree : TTree ; previousTree : TTree ; mutationTree : IMutationTree < T > ; mutationCallbacks : IMutationCallback [ ] ; flushCallbacks : IFlushCallback [ ] ; currentFlushId : number ; }