export type BenchmarkFn = () => void; export interface DefaultOptions { delay?: number; minIterations?: number; minTime?: number; type?: string; } export interface Benchmark { fn: BenchmarkFn; group: string; iterations: number; name: N; } export type BenchmarkGroup = Record; export interface Stats { elapsed: number; endTime: number; iterations: number; ops: number; tpe: number; startTime: number; } export interface Result { error: Error | null; name: N; stats: Stats; } export interface ResultsGroup { group: N; results: Result[]; } export type Results = Record; interface SuiteRunnerOptions { onComplete?: (results: Results) => void; onGroupComplete?: (resultGroup: ResultsGroup) => void; onGroupStart?: (group: string) => void; onResult?: (result: Result) => void; } interface BenchmarkRunnerOptions { onComplete?: (result: Result) => void; } export interface SuiteOptions extends DefaultOptions, SuiteRunnerOptions {} export interface NormalizedSuiteOptions extends Required, SuiteRunnerOptions {} export interface BenchmarkOptions extends DefaultOptions, BenchmarkRunnerOptions {} export interface NormalizedBenchmarkOptions extends Required, BenchmarkRunnerOptions {} export interface RunBenchmarkOptions { benchmark: Benchmark; endTime?: number; iterations?: number; startTime?: number; } export interface BencheeSuite { benchmarks: BenchmarkGroup; isRunning: boolean; options: SuiteOptions; results: Results; } export {};