export interface Options { verbose: boolean; } export interface HookRequireOptions extends Options { extensions: string[]; postLoadHook(filename: string): void; } export function hookRequire( matcher: Matcher, transformer: Transformer, options?: Partial, ): () => void; export function hookCreateScript( matcher: Matcher, transformer: Transformer, options?: Partial, ): void; export function unhookCreateScript(): void; export function hookRunInThisContext( matcher: Matcher, transformer: Transformer, options?: Partial, ): void; export function unhookRunInThisContext(): void; export function hookRunInContext( matcher: Matcher, transformer: Transformer, options?: Partial, ): void; export function unhookRunInContext(): void; export function unloadRequireCache(matcher: Matcher): void; export type Matcher = (filename: string) => boolean; export type Transformer = (code: string, options: TransformerOptions) => string; export interface TransformerOptions { filename: string; } export interface HookRunInContextOptions extends Options { coverageVariable: string; }