import type { TestContext } from './zorax' export type MacroHandler = any[]> = (t: T, ...data: D) => void | Promise declare module './zorax' { // --- with provided title --- export function test< T1 extends TestContext = TestContext, T2 extends TestContext = TestContext, T3 extends TestContext = TestContext, T4 extends TestContext = TestContext, T5 extends TestContext = TestContext, D extends Array = any[] >( name: string, macro1: MacroHandler, macro2: MacroHandler, macro3: MacroHandler, macro4: MacroHandler, macro5: MacroHandler, ...data: D ): Promise export function test< T1 extends TestContext = TestContext, T2 extends TestContext = TestContext, T3 extends TestContext = TestContext, T4 extends TestContext = TestContext, D extends Array = any[] >( name: string, macro1: MacroHandler, macro2: MacroHandler, macro3: MacroHandler, macro4: MacroHandler, ...data: D ): Promise export function test< T1 extends TestContext = TestContext, T2 extends TestContext = TestContext, T3 extends TestContext = TestContext, D extends Array = any[] >( name: string, macro1: MacroHandler, macro2: MacroHandler, macro3: MacroHandler, ...data: D ): Promise export function test< T1 extends TestContext = TestContext, T2 extends TestContext = TestContext, D extends Array = any[] >( name: string, macro1: MacroHandler, macro2: MacroHandler, ...data: D ): Promise export function test( name: string, handler: MacroHandler, ...data: any[] ): Promise // --- with no provided title (i.e. auto title) --- export function test< T1 extends TestContext = TestContext, T2 extends TestContext = TestContext, T3 extends TestContext = TestContext, T4 extends TestContext = TestContext, T5 extends TestContext = TestContext, D extends Array = any[] >( macro1: MacroHandler, macro2: MacroHandler, macro3: MacroHandler, macro4: MacroHandler, macro5: MacroHandler, ...data: D ): Promise export function test< T1 extends TestContext = TestContext, T2 extends TestContext = TestContext, T3 extends TestContext = TestContext, T4 extends TestContext = TestContext, D extends Array = any[] >( macro1: MacroHandler, macro2: MacroHandler, macro3: MacroHandler, macro4: MacroHandler, ...data: D ): Promise export function test< T1 extends TestContext = TestContext, T2 extends TestContext = TestContext, T3 extends TestContext = TestContext, D extends Array = any[] >( macro1: MacroHandler, macro2: MacroHandler, macro3: MacroHandler, ...data: D ): Promise export function test< T1 extends TestContext = TestContext, T2 extends TestContext = TestContext, D extends Array = any[] >( macro1: MacroHandler, macro2: MacroHandler, ...data: D ): Promise export function test< T1 extends TestContext = TestContext, D extends Array = any[] >( macro1: MacroHandler, ...data: D ): Promise // --- generic form --- export function test( name?: string, ...macroOrData: (MacroHandler | any)[] ): Promise }