import { TestExecutor, ReporterContract } from '@japa/core';
import { Test, TestContext, Group, Suite, Runner } from './src/core/main';
import { Config, PluginFn, RunnerHooksHandler, RunnerHooksCleanupHandler } from './src/types';
export { Test, Config, Suite, Runner, Group, PluginFn, TestContext, ReporterContract, RunnerHooksHandler, RunnerHooksCleanupHandler, };
/**
 * Configure the tests runner
 */
export declare function configure(options: Config): void;
/**
 * Process CLI arguments into configuration options. The following
 * command line arguments are processed.
 *
 * * --tests=Specify test titles
 * * --tags=Specify test tags
 * * --groups=Specify group titles
 * * --ignore-tags=Specify negated tags
 * * --files=Specify files to match and run
 * * --force-exit=Enable/disable force exit
 * * --timeout=Define timeout for all the tests
 * * -h, --help=Show help
 */
export declare function processCliArgs(argv: string[]): Partial<Config>;
/**
 * Run japa tests
 */
export declare function run(): Promise<void>;
/**
 * Add a new test
 */
export declare function test(title: string, callback?: TestExecutor<TestContext, undefined>): Test<undefined>;
export declare namespace test {
    var group: (title: string, callback: (group: Group) => void) => void;
}
