import type { TestExecutor } from '@japa/core/types'; import type { Config } from './src/types.js'; import { type Group, type Test, type TestContext } from './modules/core/main.js'; type OmitFirstArg = F extends [_: any, ...args: infer R] ? R : never; /** * Create a Japa test. Defining a test without the callback * will create a todo test. */ export declare function test(title: string, callback?: TestExecutor): Test; export declare namespace test { var group: (title: string, callback: (group: Group) => void) => Group; var macro: any>(callback: T) => (...args: OmitFirstArg>) => ReturnType; } /** * Get the test of currently running test */ export declare function getActiveTest(): Test | undefined; /** * Get the test of currently running test or throw an error */ export declare function getActiveTestOrFail(): Test; /** * Make Japa process command line arguments. Later the parsed output * will be used by Japa to compute the configuration */ export declare function processCLIArgs(argv: string[]): void; /** * Configure the tests runner with inline configuration. You must * call configure method before the run method. * * Do note: The CLI flags will overwrite the options provided * to the configure method. */ export declare function configure(options: Config): void; /** * Execute Japa tests. Calling this function will import the test * files behind the scenes */ export declare function run(): Promise; export declare const timeTravel: (durationOrTime: string | number | Date) => void; export declare const freezeTime: (date?: Date | undefined) => void; export {};