/// <reference types="node" />
export type TerminationCallback = (signal: NodeJS.Signals) => (void | Promise<void>);
/**
 * Register a callback for when termination of the process is requested via an external signal. When a signal is
 * received, all callbacks will be run serially in reverse order, and then the process will exit.
 * Explicit termination such as via process.exit() will not invoke any of the callbacks.
 *
 * The callback can be asynchronous, returning a Promise. Still it is required to limit the total amount of time spent
 * in termination callbacks, since the OS (or container orchestration) might forcefully kill the process a few seconds
 * after the signal.
 *
 * @param fn The callback to register.
 */
export declare function onTermination(fn: TerminationCallback): void;
