import { type NodeId } from '../../r-bridge/lang-4.x/ast/model/processing/node-id';
import type { AstIdMap } from '../../r-bridge/lang-4.x/ast/model/processing/decorate';
/** Either `line:column`, `line@variable-name`, or `$id` */
export type SingleSlicingCriterion = `${number}:${number}` | `${number}@${string}` | `$${NodeId | number}`;
export type SlicingCriteria = SingleSlicingCriterion[];
/**
 * Thrown if the given slicing criteria can not be found
 */
export declare class CriteriaParseError extends Error {
    constructor(message: string);
}
/**
 * Takes a criterion in the form of `line:column` or `line@variable-name` and returns the corresponding node id
 *
 * @see {@link tryResolveSliceCriterionToId} for a version that does not throw an error
 */
export declare function slicingCriterionToId(criterion: SingleSlicingCriterion, idMap: AstIdMap): NodeId;
/**
 * Tries to resolve a slicing criterion to an id, but does not throw an error if it fails.
 *
 * @see {@link slicingCriterionToId} for the version that throws an error
 */
export declare function tryResolveSliceCriterionToId(criterion: string | NodeId, idMap: AstIdMap): NodeId | undefined;
export interface DecodedCriterion {
    criterion: SingleSlicingCriterion;
    id: NodeId;
}
export type DecodedCriteria = ReadonlyArray<DecodedCriterion>;
export declare function convertAllSlicingCriteriaToIds(criteria: SlicingCriteria, decorated: AstIdMap): DecodedCriteria;
