import type { RunOnBailParameters } from '../../interfaces';
import type { NextNode } from '../../next';
import { Provider } from '../base';
export declare class BailProvider<T extends object, Arguments extends Array<any> = any[], Result = any> extends Provider<T, Arguments, Result> implements RunOnBailParameters<T> {
    protected readonly node: NextNode<T>;
    readonly receivedArgs: any[];
    bailUsing: any;
    private recover;
    constructor(node: NextNode<T>, receivedArgs: any[], bailUsing: any);
    bailWith(value: any): void;
    recoverFromBail(recover: boolean): void;
    get shouldRecover(): boolean;
}
