///
import { Expression } from "@cucumber/cucumber-expressions";
import { Position } from "../helpers/source-map";
import { IStepDefinition } from "../registry";
import { AmbiguousStep, DiagnosticResult, UnmatchedStep } from "./diagnose";
export declare function log(...lines: string[]): void;
export declare function red(message: string): string;
export declare function yellow(message: string): string;
export declare function expressionToString(expression: Expression): string;
export declare function strictCompare(a: T, b: T): boolean;
export declare function comparePosition(a: Position, b: Position): boolean;
export declare function compareStepDefinition(a: IStepDefinition, b: IStepDefinition): boolean;
export declare function position(definition: IStepDefinition): Position;
export declare function groupToMap(collection: T[], getKeyFn: (el: T) => K, compareKeyFn: (a: K, b: K) => boolean): Map;
export declare function mapValues(map: Map, fn: (el: A) => B): Map;
export declare function createLineBuffer(fn: (append: (string: string) => void) => void): string[];
export declare function createDefinitionsUsage(projectRoot: string, result: DiagnosticResult): string;
export declare function createAmbiguousStep(projectRoot: string, ambiguousStep: AmbiguousStep): string[];
export declare function createUnmatchedStep(projectRoot: string, unmatch: UnmatchedStep): string[];
export declare function execute(options: {
argv: string[];
env: NodeJS.ProcessEnv;
cwd: string;
}): Promise;