/* tslint:disable */
/* eslint-disable */

/* auto-generated by NAPI-RS */

export interface LoaderEnrichments {
  filename: string
  format: string
}
export interface Config {
  data: LoaderEnrichments
  bundlerBuildId?: string
  prefix: string
  functionWrapper: string
  awaitWrapper: string
  yieldWrapper: string
  yieldStarWrapper: string
  initialStatements: Array<string>
  bodyPlaceholder: string
  functionIdPlaceholder: string
  awaitablePlaceholder: string
  exceptionVariablePlaceholder: string
  argsArrayPlaceholder: string
  fixStackFunction: string
  wrapperUserCatch: string
  asyncIteratorWrapper: string
  uuidNamespace: string
  fileHash: string
  functionsToInstrument?: Array<string>
  useInputSourcemap: boolean
  isNextJsFile: boolean
  markCode: string
  enableForAwaitInstrumentation: boolean
  enableVarHoisting: boolean
  functionIdVar?: string
  disableParametersExtraction: boolean
  instrumentOneLiners: boolean
}
export interface FunctionIdMarker {
  symbolCode: string
  placeholder: string
  fileHash: string
  uuidNamespace: string
}
export interface MarkerConfig {
  filename: string
  functionMarkCode?: string
  firstFunctionMarkCode?: string
  filePrefixMarkStmts?: Array<string>
  fileSuffixMarkStmts?: Array<string>
  functionIdMarker?: FunctionIdMarker
  enableExportAssignmentReplacement?: boolean
}
export interface TransformFullOutput {
  code: string
  map: string
  functionsIds: Array<string>
  totalFunctionsCountIncludeUninstrumented: number
  isInputSourcemap: boolean
  moduleBase: number
  marksCount: number
  detectedForAwaitLoops: number
  detectedVarConflicts: number
  failedToRemoveFunctionIdCount: number
  functionsWithMultipleFunctionIdMarks: number
}
export interface MarkerOutput {
  code: string
  map: string
  foundExportAssignment: boolean
}
export declare function transform(moduleCode: string, config: Config): TransformFullOutput
export declare function markFileAndFunctions(moduleCode: string, config: MarkerConfig, map?: string | undefined | null): MarkerOutput
export declare function getSourceMap(sourcePath: string, sourceCode: string): string | null
