import { internalPrinter } from '../../../print/print';
import { PipelineStepStage } from '../../pipeline-step';
import type { SliceResult } from '../../../../slicing/static/slicer-types';
import { type InlineFull } from '../../../../reconstruct/reconstruct';
import type { NormalizedAst } from '../../../../r-bridge/lang-4.x/ast/model/processing/decorate';
import type { AutoSelectPredicate } from '../../../../reconstruct/auto-select/auto-select-defaults';
import type { DataflowInformation } from '../../../../dataflow/info';
export interface ReconstructRequiredInput {
    autoSelectIf?: AutoSelectPredicate;
    /**
     * When confronted with a project of multiple files the question for reconstruct arises wrt. which files to rebuild.
     * This option can be used to either reconstruct all files or only specific files by their index in the project.
     * By default, (for legacy) this will reconstruct the *first* file (index 0).
     *
     * Either you can set this to `'all'` to reconstruct all files or provide an array of file indices in the files context to reconstruct only those files.
     */
    reconstructFiles?: 'all' | number[];
    /**
     * Inline resolvable `source()` calls into the reconstruction so the result is a single self-contained R text.
     * Cyclic and unresolvable `source()` calls are kept verbatim and reported via `reconstruct.inlineWarnings`.
     */
    inlineSources?: boolean;
    /**
     * Inline *every* file into the reconstruction, in flowR's loading order (which respects implicit sources).
     * Overrides {@link inlineSources} and {@link reconstructFiles}.
     */
    inlineFull?: InlineFull;
}
declare function processor(results: {
    normalize?: NormalizedAst;
    slice?: SliceResult;
    dataflow?: DataflowInformation;
}, input: Partial<ReconstructRequiredInput>): import("../../../../reconstruct/reconstruct").ReconstructionResult;
export declare const NAIVE_RECONSTRUCT: {
    readonly name: "reconstruct";
    readonly humanReadableName: "static code reconstruction";
    readonly description: "Reconstruct R code from the static slice";
    readonly processor: typeof processor;
    readonly executed: PipelineStepStage.OncePerRequest;
    readonly printer: {
        readonly 0: typeof internalPrinter;
    };
    readonly dependencies: readonly ["slice"];
    readonly requiredInput: ReconstructRequiredInput;
};
export {};
