import type { BaseQueryFormat, BaseQueryResult } from '../../base-query-format';
import type { SlicingCriterion } from '../../../slicing/criterion/parse';
import type { ParsedQueryLine } from '../../query';
import Joi from 'joi';
import { executeResolveValueQuery } from './origin-query-executor';
import type { Origin } from '../../../dataflow/origin/dfg-get-origin';
import type { NodeId } from '../../../r-bridge/lang-4.x/ast/model/processing/node-id';
import type { ReplOutput } from '../../../cli/repl/commands/repl-main';
import type { FlowrConfig } from '../../../config';
export interface OriginQuery extends BaseQueryFormat {
    readonly type: 'origin';
    /** The slicing criteria to use */
    readonly criterion: SlicingCriterion;
}
export interface OriginQueryResult extends BaseQueryResult {
    results: Record<SlicingCriterion, Origin[] | undefined>;
}
declare function originQueryLineParser(output: ReplOutput, line: readonly string[], _config: FlowrConfig): ParsedQueryLine<'origin'>;
export declare const OriginQueryDefinition: {
    readonly executor: typeof executeResolveValueQuery;
    readonly asciiSummarizer: (formatter: import("../../../util/text/ansi").OutputFormatter, _analyzer: import("../../../project/flowr-analyzer").ReadonlyFlowrAnalysisProvider<import("../../../r-bridge/parser").KnownParser>, queryResults: BaseQueryResult, result: string[]) => true;
    readonly fromLine: typeof originQueryLineParser;
    readonly schema: Joi.ObjectSchema<any>;
    readonly flattenInvolvedNodes: (queryResults: BaseQueryResult) => NodeId[];
};
export {};
