import { Expression, ParameterType, ParameterTypeRegistry } from "@cucumber/cucumber-expressions"; import type { IdGenerator } from "@cucumber/messages"; import parse from "@cucumber/tag-expressions"; import DataTable from "./data_table"; import { CypressCucumberError } from "./helpers/error"; import { Position } from "./helpers/source-map"; import { ICaseHookBody, ICaseHookOptions, ICaseHookParameter, IParameterTypeDefinition, IRunHookBody, IRunHookOptions, IStepDefinitionBody, IStepHookBody, IStepHookParameter } from "./public-member-types"; export interface IStepDefinition { id: string; expression: Expression; implementation: IStepDefinitionBody; position?: Position; lexicalOrder: number; } export declare class MissingDefinitionError extends CypressCucumberError { } export declare class MultipleDefinitionsError extends CypressCucumberError { } export type RunHookKeyword = "BeforeAll" | "AfterAll"; export type CaseHookKeyword = "Before" | "After"; export type StepHookKeyword = "BeforeStep" | "AfterStep"; type Node = ReturnType; export declare const DEFAULT_HOOK_ORDER = 10000; export interface IRunHook { id: string; implementation: IRunHookBody; keyword: RunHookKeyword; order: number; lexicalOrder: number; position?: Position; } export interface ICaseHook { id: string; node: Node; implementation: ICaseHookBody; keyword: CaseHookKeyword; order: number; lexicalOrder: number; position?: Position; tags?: string; name?: string; } export interface IStepHook { node: Node; implementation: IStepHookBody; keyword: StepHookKeyword; order: number; position?: Position; tags?: string; name?: string; } export declare class Registry { private experimentalSourceMap; parameterTypeRegistry: ParameterTypeRegistry; private preliminaryStepDefinitions; stepDefinitions: IStepDefinition[]; private preliminaryCaseHooks; private preliminaryRunHooks; runHooks: IRunHook[]; caseHooks: ICaseHook[]; stepHooks: IStepHook[]; parameterTypeOrdering: Map, number>; constructor(experimentalSourceMap?: boolean); finalize(newId: IdGenerator.NewId): void; defineStep(description: string | RegExp, implementation: IStepDefinitionBody): void; defineParameterType({ name, regexp, transformer, }: IParameterTypeDefinition): void; defineCaseHook(keyword: CaseHookKeyword, options: ICaseHookOptions, fn: ICaseHookBody): void; defineBefore(options: ICaseHookOptions, fn: ICaseHookBody): void; defineAfter(options: ICaseHookOptions, fn: ICaseHookBody): void; defineStepHook(keyword: StepHookKeyword, options: ICaseHookOptions, fn: IStepHookBody): void; defineBeforeStep(options: ICaseHookOptions, fn: IStepHookBody): void; defineAfterStep(options: ICaseHookOptions, fn: IStepHookBody): void; defineRunHook(keyword: RunHookKeyword, options: IRunHookOptions, fn: IRunHookBody): void; defineBeforeAll(options: IRunHookOptions, fn: IRunHookBody): void; defineAfterAll(options: IRunHookOptions, fn: IRunHookBody): void; getMatchingStepDefinitions(text: string): IStepDefinition[]; resolveStepDefinition(text: string): IStepDefinition; runStepDefinition(world: C, text: string, dryRun: boolean, argument?: DataTable | string): unknown; resolveCaseHooks(keyword: CaseHookKeyword, tags: string[]): ICaseHook[]; resolveBeforeHooks(tags: string[]): ICaseHook[]; resolveAfterHooks(tags: string[]): ICaseHook[]; runCaseHook(world: C, hook: ICaseHook, options: ICaseHookParameter): void; resolveStepHooks(keyword: StepHookKeyword, tags: string[]): IStepHook[]; resolveBeforeStepHooks(tags: string[]): IStepHook[]; resolveAfterStepHooks(tags: string[]): IStepHook[]; runStepHook(world: C, hook: IStepHook, options: IStepHookParameter): void; resolveRunHooks(keyword: RunHookKeyword): IRunHook[]; resolveBeforeAllHooks(): IRunHook[]; resolveAfterAllHooks(): IRunHook[]; runRunHook(world: C, hook: IRunHook): void; } export declare function withRegistry(experimentalSourceMap: boolean, fn: () => void): Registry; export declare function assignRegistry(registry: Registry): void; export declare function freeRegistry(): void; export declare function getRegistry(): Registry; export {};