/**
 * Process control signal which may be configured with instructions describing how to treat an error from the process
 */
declare class ControlSignal extends Error {
    options?: ControlSignal.Options;
    /** Cause error */
    cause?: Error;
    /**
     * Constructs instance
     * @param options options
     */
    constructor(options?: ControlSignal.Options);
}
declare namespace ControlSignal {
    /** Constructing options */
    type Options = {
        /** Error the process failed with */
        error?: Error;
        /** Overriden message */
        message?: string;
        /**
         * What to do with the process
         * - `cancel` means the process will be canceled, but only if it was not rescheduled with new options
         * - `failover` means a some problem arised and the process should be failovered with throttle delay
         * - `stop` means the process should gracefully stop, and restart without throttle delays if it is still scheduled
         * @default "failover"
         */
        action?: 'cancel' | 'failover' | 'stop';
        /**
         * Overriden log message severity. Default behaviour:
         * - `error` when `error` field is specified
         * - `warn` otherwise, when the action is `failover`
         * - `info` otherwise
         */
        severity?: 'error' | 'warn' | 'info' | 'debug';
    };
}
export default ControlSignal;
