import * as messages from "@cucumber/messages";
import { StrictTimestamp } from "./helpers/messages";
import { ICaseHook, Registry } from "./registry";
interface IStep {
    hook?: ICaseHook<Mocha.Context>;
    pickleStep?: messages.PickleStep;
}
declare const internalPropertiesReplacementText = "Internal properties of cypress-cucumber-preprocessor omitted from report.";
export interface InternalSpecProperties {
    pickle: messages.Pickle;
    testCaseStartedId: string;
    currentStepStartedAt?: StrictTimestamp;
    currentStep?: IStep;
    allSteps: IStep[];
    remainingSteps: IStep[];
    toJSON(): typeof internalPropertiesReplacementText;
}
export interface InternalSuiteProperties {
    isEventHandlersAttached?: boolean;
}
export declare function retrieveInternalSpecProperties(): InternalSpecProperties;
export default function createTests(registry: Registry<Mocha.Context, unknown[]>, seed: number, source: string, gherkinDocument: messages.GherkinDocument, pickles: messages.Pickle[], isTrackingState: boolean, softErrors: boolean, omitFiltered: boolean, stepDefinitionHints: {
    stepDefinitions: string | string[];
    stepDefinitionPatterns: string[];
    stepDefinitionPaths: string[];
}, dryRun: boolean): void;
type Tail<T extends any[]> = T extends [infer _A, ...infer R] ? R : never;
export type CreateTestsOptions = Tail<Parameters<typeof createTests>>;
export {};
