import type * as messages from "@cucumber/messages"; export interface IParameterTypeDefinition { name: string; regexp: RegExp; transformer?: (this: C, ...match: string[]) => T; } export interface IRunHookOptions { order?: number; name?: string; } export interface IRunHookBody { (this: C): void; } export interface ICaseHookOptions { name?: string; tags?: string; order?: number; } export interface ICaseHookParameter { pickle: messages.Pickle; gherkinDocument: messages.GherkinDocument; testCaseStartedId: string; } export interface ICaseHookBody { (this: C, options: ICaseHookParameter): void; } export interface IStepHookOptions { name?: string; tags?: string; order?: number; } export interface IStepHookParameter { pickle: messages.Pickle; pickleStep: messages.PickleStep; gherkinDocument: messages.GherkinDocument; testCaseStartedId: string; testStepId: string; } export interface IStepHookBody { (this: C, options: IStepHookParameter): void; } export interface IStepDefinitionBody { (this: C, ...args: T): void; }