type LibMixins = LibMixin & Record; interface LibMixin { computed?:Record | LibMixinsComputed>; methods?:Record; } interface LibMixinsComputed { (this:LibVueOptions):any | void } interface LibMixinsMethod { (this:LibVueOptions,...rest:any):any | void } type LibVueOptions = Record & LibVueOption; interface LibVueOption { $popup:PopupComponent, $toast:(option:PopupToastOptions)=>string, $loading:(option:PopupToastOptions)=>string, $success:(option:PopupToastOptions)=>any, $fail:(option:PopupToastOptions)=>any, $warning:(option:PopupToastOptions)=>any, $info:(option:PopupToastOptions)=>any, $request:(option:LibRequestOptions)=>Promise }