import { Logger } from '../../../common/contracts'; import { ICockpitNotifierPiggyback } from '../../../common/agent-events/cockpit-notifier'; import { IInstrumentationStrategy } from './instrumentation-strategy.interface'; import { ContentInstrumenter } from '../content-instrumenter'; export interface IInstrumentationStrategyParams { shouldMinifyInstrumentedOutput: boolean; reduceInstrumentedFileSize: boolean; omitInstrumentedFunctionMap: boolean; useBranchCoverage: boolean; babylonPlugins: boolean; experimentalSizeReduction: boolean; newInstrumenter: boolean; } export declare class JsFileInstrumentationStrategy implements IInstrumentationStrategy { protected config: IInstrumentationStrategyParams; protected instrumenter: ContentInstrumenter; protected preamble: string[]; protected logger: Logger; protected cockpitNotifier: ICockpitNotifierPiggyback; constructor(config: IInstrumentationStrategyParams, instrumenter: ContentInstrumenter, preamble: string[], logger: Logger, cockpitNotifier: ICockpitNotifierPiggyback); process(inputFile: string, outputFile: string, fileKey: string): Promise; protected getContent(inputFile: string): string; protected postInstrumentation(instrumentedContent: any, fileKey: any): string; protected addPreamble(instrumentedContent: string): string; private reduceFileSize; }