import { type Mock as JestMock } from './jest-mock'; type Mock = JestMock<(...args: A) => R>; interface OverrideInfo { /** The arguments passed to the function */ args: Args; returned: Return; /** The original spied on function */ original: Fn; } type Fn = (...args: Args) => R; type OverrideFn = (callback: (info: OverrideInfo) => Return) => BrowserSpy; export type BrowserSpy = Mock & { override: OverrideFn; overrideOnce: OverrideFn; } & Promise>; export declare const spied: >(fn: T) => (T extends Fn ? BrowserSpy : never) & T; type FunctionPropertyNames = { [K in keyof T]: T[K] extends Function ? K : never; }[keyof T]; declare function spyOnWrapped>(obj: T, method: K): T[K] extends Fn ? BrowserSpy : BrowserSpy; declare function spyOnWrapped(obj: T, method: keyof T, accessType: 'get' | 'set'): BrowserSpy; export declare const browserMock: { spyOn: typeof spyOnWrapped; fn: (impl?: ((...args: any) => any) | undefined) => BrowserSpy; }; export {}; //# sourceMappingURL=browser-mock.d.ts.map