import type { CommonLogger } from '@naturalcycles/js-lib/log';
export interface RunScriptOptions {
    /**
     * @default false
     * Set to true to NOT call process.exit(0) after function is completed.
     * Currently it exists because of `jest --maxWorkers=1` behavior. To be investigated more..
     */
    noExit?: boolean;
    /**
     * Default to `console`
     */
    logger?: CommonLogger;
    /**
     * Defaults to true.
     * Set to false if you already have your handlers elsewhere and don't need them here.
     */
    registerUncaughtExceptionHandlers?: boolean;
}
/**
 * Use it in your top-level scripts like this:
 *
 * runScript(async () => {
 *   await lalala()
 *   // my script goes on....
 * })
 *
 * Advantages:
 * - Works kind of like top-level await
 * - No need to add `void`
 * - No need to add `.then(() => process.exit()` (e.g to close DB connections)
 * - No need to add `.catch(err => { console.error(err); process.exit(1) })`
 *
 * This function is kept light, dependency-free, exported separately.
 *
 * Set env DEBUG_RUN_SCRIPT for extra debugging.
 */
export declare function runScript(fn: (...args: any[]) => any, opt?: RunScriptOptions): void;
