import { ICypressConfiguration } from "@badeball/cypress-configuration"; import { Expression, ParameterTypeRegistry } from "@cucumber/cucumber-expressions"; import { PickleStepType } from "@cucumber/messages"; import { IPreprocessorConfiguration } from "../preprocessor-configuration"; import { IStepDefinition } from "../registry"; import { Position } from "../helpers/source-map"; export interface DiagnosticStep { source: string; line: number; text: string; } export interface UnmatchedStep { step: DiagnosticStep; type: PickleStepType; argument: "docString" | "dataTable" | null; parameterTypeRegistry: ParameterTypeRegistry; stepDefinitionHints: { stepDefinitions: string[]; stepDefinitionPatterns: string[]; stepDefinitionPaths: string[]; }; } export interface AmbiguousStep { step: DiagnosticStep; definitions: IStepDefinition[]; } export interface DiagnosticResult { definitionsUsage: { definition: IStepDefinition; steps: DiagnosticStep[]; }[]; unmatchedSteps: UnmatchedStep[]; ambiguousSteps: AmbiguousStep[]; } 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 diagnose(configuration: { cypress: ICypressConfiguration; preprocessor: IPreprocessorConfiguration; }): Promise;