import type { NodeId } from '../r-bridge/lang-4.x/ast/model/processing/node-id';
import type { ReadonlyFlowrAnalysisProvider } from '../project/flowr-analyzer';
import { SlicingCriterion } from '../slicing/criterion/parse';
/** A query that may restrict the functions it inspects to a set of slicing criteria. */
interface FunctionFilteringQuery {
    filter?: readonly SlicingCriterion[];
}
/**
 * Resolves the function filter shared by the inspection queries (`inspect-*`).
 */
export declare const QueryFunctionFilter: {
    readonly name: "QueryFunctionFilter";
    /** The ids the given queries restrict themselves to; empty if at least one query wants all functions. */
    readonly criteria: (this: void, queries: readonly FunctionFilteringQuery[], analyzer: ReadonlyFlowrAnalysisProvider) => Promise<ReadonlySet<NodeId>>;
    /** The call graph together with the functions the given queries want to inspect. */
    readonly inCallGraph: (this: void, queries: readonly FunctionFilteringQuery[], analyzer: ReadonlyFlowrAnalysisProvider, onlyDefinitions?: boolean) => Promise<{
        cg: import("../dataflow/graph/call-graph").CallGraph;
        fns: MapIterator<[NodeId, Required<import("../dataflow/graph/vertex").DataflowGraphVertexFunctionCall | import("../dataflow/graph/vertex").DataflowGraphVertexFunctionDefinition>]>;
    }>;
};
export {};
