import { internalPrinter } from '../../../print/print';
import { PipelineStepStage } from '../../pipeline-step';
import type { DataflowInformation } from '../../../../dataflow/info';
import type { SlicingCriteria } from '../../../../slicing/criterion/parse';
import type { NormalizedAst } from '../../../../r-bridge/lang-4.x/ast/model/processing/decorate';
import type { FlowrConfigOptions } from '../../../../config';
export interface SliceRequiredInput {
    /** The slicing criterion is only of interest if you actually want to slice the R code */
    readonly criterion: SlicingCriteria;
    /** How many re-visits of the same node are ok? */
    readonly threshold?: number;
    /** The direction to slice in. Defaults to backward slicing if unset. */
    readonly direction?: SliceDirection;
}
export declare enum SliceDirection {
    Backward = "backward",
    Forward = "forward"
}
declare function processor(results: {
    dataflow?: DataflowInformation;
    normalize?: NormalizedAst;
}, input: Partial<SliceRequiredInput>, _config: FlowrConfigOptions): Readonly<import("../../../../slicing/static/slicer-types").SliceResult>;
export declare const STATIC_SLICE: {
    readonly name: "slice";
    readonly humanReadableName: "static slice";
    readonly description: "Calculate the actual static slice from the dataflow graph and the given slicing criteria";
    readonly processor: typeof processor;
    readonly executed: PipelineStepStage.OncePerRequest;
    readonly printer: {
        readonly 0: typeof internalPrinter;
    };
    readonly dependencies: readonly ["dataflow"];
    readonly requiredInput: SliceRequiredInput;
};
export {};
