import type { SurrogateHandler, NextParameters } from '../../../interfaces';
import type { HandlerRule } from '../interfaces';
import type { NextNode } from '../../../next';
export declare abstract class HandlerBaseRule<T extends object> implements HandlerRule<T> {
    protected node: NextNode<T>;
    constructor(node: NextNode<T>);
    protected shouldRunWithoutArgs(): boolean;
    protected shouldRunWithArgs(): boolean;
    protected get options(): import("../../../options").OptionsHandler<T>;
    protected get handler(): SurrogateHandler<T>;
    protected get context(): import("../../../interfaces").Contexts;
    abstract run(NextProvider?: NextParameters<T>): any;
    abstract shouldHandle(): boolean;
}
