import { MockInstance } from 'jest-mock'; type DeepPartial = { [P in keyof T]?: T[P] extends Array ? Array> : T[P] extends ReadonlyArray ? ReadonlyArray> : unknown extends T[P] ? T[P] : DeepPartial; }; export type PartialFuncReturn = { [K in keyof T]?: T[K] extends (...args: infer A) => infer U ? (...args: A) => PartialFuncReturn : DeepPartial; }; type IsExactlyUnknown = unknown extends T ? T extends {} ? false : true : false; type Prev = [never, 0, 1, 2, 3, 4]; type DeepMockedInternal = D extends 0 ? T : { [K in keyof T]: IsExactlyUnknown extends true ? any : NonNullable extends (...args: infer A) => infer U ? MockInstance<(...args: A) => U> & ((...args: A) => DeepMockedInternal) : NonNullable extends object ? undefined extends T[K] ? DeepMockedInternal, Prev[D]> | undefined : DeepMockedInternal : T[K]; } & T; export type DeepMocked = DeepMockedInternal; export type MockOptions = { name?: string; strict?: boolean; }; export declare const createMock: (partial?: PartialFuncReturn, options?: MockOptions) => DeepMocked; export {}; //# sourceMappingURL=mocks.d.ts.map