import type * as messages from "@cucumber/messages";
export declare function traverseGherkinDocument(gherkinDocument: messages.GherkinDocument): Generator<messages.Location | messages.GherkinDocument | messages.Feature | messages.Tag | messages.FeatureChild | messages.Rule | messages.RuleChild | messages.Background | messages.Step | messages.DocString | messages.DataTable | messages.TableRow | messages.TableCell | messages.Scenario | messages.Examples, void, unknown>;
export declare function collectTagNames(tags: readonly (messages.Tag | messages.PickleTag)[] | null | undefined): string[];
export type YieldType<T extends Generator> = T extends Generator<infer R> ? R : never;
export declare function createAstIdMap(gherkinDocument: messages.GherkinDocument): Map<string, YieldType<ReturnType<typeof traverseGherkinDocument>>>;
