import { Project, WaterfallHook } from '@shopify/loom'; import type { TestProjectConfigurationHooks } from '@shopify/loom'; declare type DeepReadonly = Readonly<{ [K in keyof T]: T[K] extends (infer U)[] | infer Rest ? ReadonlyArray | Rest : T[K]; }>; declare type JestConfig = DeepReadonly; interface JestProjectHooks { readonly jestModuleFileExtensions: WaterfallHook>; readonly jestModuleNameMapper: WaterfallHook<{ [key: string]: string; }>; readonly jestSetupFiles: WaterfallHook>; readonly jestSetupFilesAfterEnv: WaterfallHook>; readonly jestTestEnvironment: WaterfallHook; readonly jestTestRunner: WaterfallHook; readonly jestTransform: WaterfallHook<{ [key: string]: string | [string, { [key: string]: unknown; }]; }>; readonly jestWatchPathIgnorePatterns: WaterfallHook>; readonly jestConfig: WaterfallHook; } interface JestWorkspaceHooks { readonly jestSetupFiles: WaterfallHook>; readonly jestSetupFilesAfterEnv: WaterfallHook>; readonly jestConfig: WaterfallHook; readonly jestFlags: WaterfallHook; } declare module '@shopify/loom' { interface TestProjectConfigurationCustomHooks extends JestProjectHooks { } interface TestWorkspaceConfigurationCustomHooks extends JestWorkspaceHooks { } interface TestWorkspaceCustomContext { readonly jestProjectConfigurations: Map; } } interface JestFlags { ci?: boolean; config?: string; watch?: boolean; watchAll?: boolean; testNamePattern?: string; testPathPattern?: string; runInBand?: boolean; forceExit?: boolean; maxWorkers?: number; onlyChanged?: boolean; coverage?: boolean; updateSnapshot?: boolean; cacheDirectory?: string; [key: string]: unknown; } export declare function jest(): import("@shopify/loom").WorkspacePlugin; export {}; //# sourceMappingURL=plugin-jest.d.ts.map