import { FunctionLike, MockInstance } from 'jest-mock'; type TFluentMethod = 'mockClear' | 'mockReset' | 'mockImplementationOnce' | 'mockName' | 'mockReturnThis' | 'mockReturnValue' | 'mockReturnValueOnce' | 'mockResolvedValue' | 'mockResolvedValueOnce' | 'mockRejectedValue' | 'mockRejectedValueOnce'; type TMethod = { invoke(...parameters: TParameters): TResult; }['invoke']; type TControls = Omit, TFluentMethod | 'mockImplementation' | '_isMockFunction' | '_protoImpl' | 'whenCalledWith' | symbol>; export type TCompatibleSpy = TControls & { mockImplementation: TMethod<[implementation?: T], TCompatibleSpy>; } & { [K in TFluentMethod]: TMethod[K]>, TCompatibleSpy>; }; export type TCompatibleMock = TControls & { (...parameters: Parameters): ReturnType; mockImplementation: TMethod<[implementation?: T], TCompatibleMock>; new (...parameters: Parameters): ReturnType; } & { [K in TFluentMethod]: TMethod[K]>, TCompatibleMock>; }; export {};