import { IWorld } from "@cucumber/cucumber";
import { DefineStepPattern, IDefineStepOptions, TestStepFunction } from "@cucumber/cucumber/lib/support_code_library_builder/types";
export type StepType = "given" | "when" | "then";
export declare class CustomStepDefinition {
    readonly stepType: StepType;
    readonly pattern: DefineStepPattern;
    readonly code: TestStepFunction<IWorld>;
    readonly options?: IDefineStepOptions | undefined;
    docs: string;
    examples: string[];
    constructor(stepType: StepType, pattern: DefineStepPattern, code: TestStepFunction<IWorld>, options?: IDefineStepOptions | undefined);
    withDocs(docs: string): CustomStepDefinition;
    withExample(example: string): CustomStepDefinition;
}
type DefineStepArgs = [pattern: DefineStepPattern, code: TestStepFunction<IWorld>] | [
    pattern: DefineStepPattern,
    options: IDefineStepOptions,
    code: TestStepFunction<IWorld>
];
type CucumberFunction = (...args: DefineStepArgs) => CustomStepDefinition;
export declare const customSteps: CustomStepDefinition[];
export declare const Given: CucumberFunction;
export declare const When: CucumberFunction;
export declare const Then: CucumberFunction;
export {};
//# sourceMappingURL=utils.d.ts.map