import { type LintingResult, LintingRuleCertainty } from '../linter-format';
import type { MergeableRecord } from '../../util/objects';
import { LintingRuleTag } from '../linter-tags';
import { type CfgSimplificationPassName } from '../../control-flow/cfg-simplification';
export type DeadCodeResult = LintingResult;
export interface DeadCodeConfig extends MergeableRecord {
    /**
     * The simplification passes that should be run on the extracted CFG.
     * Defaults to the entries of {@link DefaultCfgSimplificationOrder} and `analyze-dead-code`.
     */
    simplificationPasses?: CfgSimplificationPassName[];
}
export declare const DEAD_CODE: {
    readonly createSearch: (config: DeadCodeConfig) => import("../../search/flowr-search-builder").FlowrSearchBuilder<"all", ["with", "filter"], import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, Promise<import("../../search/flowr-search").FlowrSearchElements<import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, [] | import("../../search/flowr-search").FlowrSearchElement<import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>[]>>>;
    readonly processSearchResult: (elements: import("../../search/flowr-search").FlowrSearchElements<import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation, import("../../search/flowr-search").FlowrSearchElement<import("../../r-bridge/lang-4.x/ast/model/processing/decorate").ParentInformation>[]>, _config: DeadCodeConfig, _data: import("../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../r-bridge/parser").KnownParser>) => {
        results: LintingResult[];
    };
    readonly prettyPrint: {
        readonly query: (result: LintingResult) => string;
        readonly full: (result: LintingResult) => string;
    };
    readonly info: {
        readonly name: "Dead Code";
        readonly tags: readonly [LintingRuleTag.Smell, LintingRuleTag.Usability, LintingRuleTag.Reproducibility];
        readonly certainty: LintingRuleCertainty.BestEffort;
        readonly description: "Marks areas of code that are never reached during execution.";
        readonly defaultConfig: {};
    };
};
