import type { TestFn } from '../types'; import { Hrtime, Optional } from '../types.internal'; declare enum TesterContextEnum { TestFn = "testFn", Args = "args", RestArgs = "restArgs", Ops = "ops", Workload = "workload", Setup = "setup", Cleanup = "cleanup" } export interface TesterContext { [TesterContextEnum.TestFn]: TestFn; [TesterContextEnum.Args]?: ReadonlyArray; [TesterContextEnum.RestArgs]?: ReadonlyArray; [TesterContextEnum.Ops]: number; [TesterContextEnum.Workload]: boolean; [TesterContextEnum.Setup]: Optional<() => void>; [TesterContextEnum.Cleanup]: Optional<() => void>; } export declare type Tester = (context: TesterContext) => { elapsed: Hrtime; }; export interface CodeGenArgumentOptions { count: number; rest?: boolean; } export interface CodeGenOptions { argument: CodeGenArgumentOptions; } export declare class CodeGen { private static cgid; static createTester: (options: CodeGenOptions) => Tester; private readonly id; private readonly argument; constructor(options: CodeGenOptions); private generatePickArguments; private generateTestFnCall; private interpolate; private removeEmptyLines; createTester(): Tester; } export {};