function spyimport { spy } from "https://deno.land/std@0.146.0/testing/mock.ts"; spy<Self = any, Args extends unknown[] = any[], Return = undefined>(): Spy<Self, Args, Return>Wraps a function or instance method with a Spy. spy<Self, Args extends unknown[], Return>(func: (this: Self, ...args: Args) => Return): Spy<Self, Args, Return>spy<Self, Prop extends keyof Self>(self: Self, property: Prop): Spy<Self, GetParametersFromProp<Self, Prop>, GetReturnFromProp<Self, Prop>>spy<Self, Args extends unknown[], Return>(funcOrSelf?: ((this: Self, ...args: Args) => Return) | Self, property?: keyof Self): Spy<Self, Args, Return>Wraps a function or instance method with a Spy. Type ParametersoptionalSelf = anyoptionalArgs extends unknown[] = any[]optionalReturn = undefinedReturnsSpy<Self, Args, Return>Type ParametersSelfArgs extends unknown[]ReturnParametersfunc: (this: Self, ...args: Args) => ReturnReturnsSpy<Self, Args, Return>Type ParametersSelfProp extends keyof SelfParametersself: Selfproperty: PropReturnsSpy<Self, GetParametersFromProp<Self, Prop>, GetReturnFromProp<Self, Prop>>Type ParametersSelfArgs extends unknown[]ReturnParametersoptionalfuncOrSelf: ((this: Self, ...args: Args) => Return) | Selfoptionalproperty: keyof SelfReturnsSpy<Self, Args, Return>