import { GherkinDocument, Location, Comment, Feature, Tag, FeatureChild, Rule, Background, Scenario, Examples, Step, TableRow, TableCell, StepKeywordType, DocString, DataTable, RuleChild } from '@cucumber/messages'; export type GherkinNodeWithLocation = Comment | Feature | Tag | Scenario | Rule | Background | Examples | Step | TableRow | TableCell | DocString | DataTable; export type GherkinNode = GherkinNodeWithLocation | GherkinDocument | FeatureChild | RuleChild; export declare function isWithLocation(node: unknown): node is GherkinNodeWithLocation; export declare abstract class TypedGherkinNode { constructor(originalNode: N); } export interface HasChildren> { get children(): ReadonlyArray>; } export declare function isHasChildren>(node: unknown): node is HasChildren; export interface HasChild> { get child(): undefined | TypedGherkinNode; } export declare function isHasChild>(node: unknown): node is HasChild; export declare abstract class TypedGherkinNodeWithLocation extends TypedGherkinNode { location: Location; constructor(originalNode: N); get lastLine(): number; } type Options = { escapeBackslashes: boolean; }; export declare class TypedGherkinDocument extends TypedGherkinNode implements GherkinDocument, HasChild { uri?: string; feature?: TypedFeature; comments: readonly TypedComment[]; constructor(originalNode: GherkinDocument, options: Options); get child(): undefined | TypedFeature; } export declare class TypedFeature extends TypedGherkinNodeWithLocation implements Feature, HasChildren { tags: readonly TypedTag[]; language: string; keyword: string; name: string; description: string; children: readonly TypedFeatureChild[]; constructor(originalNode: Feature); } export declare class TypedTag extends TypedGherkinNodeWithLocation implements Tag { name: string; id: string; constructor(originalNode: Tag); } export declare class TypedComment extends TypedGherkinNodeWithLocation implements Comment { text: string; constructor(originalNode: Comment); get value(): string; } export declare class TypedFeatureChild extends TypedGherkinNode implements FeatureChild, HasChild { rule?: TypedRule; background?: TypedBackground; scenario?: TypedScenario; constructor(originalNode: FeatureChild); get child(): undefined | TypedRule | TypedScenario | TypedBackground; } export declare class TypedRule extends TypedGherkinNodeWithLocation implements Rule, HasChildren { tags: readonly TypedTag[]; keyword: string; name: string; description: string; children: readonly TypedRuleChild[]; id: string; constructor(originalNode: Rule); } export declare class TypedRuleChild extends TypedGherkinNode implements RuleChild, HasChild { background?: TypedBackground; scenario?: TypedScenario; constructor(originalNode: RuleChild); get child(): undefined | TypedScenario; } export declare class TypedBackground extends TypedGherkinNodeWithLocation implements Background, HasChildren { keyword: string; name: string; description: string; steps: readonly TypedStep[]; id: string; constructor(originalNode: Background); get children(): ReadonlyArray; } export declare class TypedStep extends TypedGherkinNodeWithLocation implements Step, HasChildren { keyword: string; keywordType?: StepKeywordType; text: string; docString?: TypedDocString; dataTable?: TypedDataTable; id: string; constructor(originalNode: Step); get children(): ReadonlyArray; get lastLine(): number; } export declare class TypedScenario extends TypedGherkinNodeWithLocation implements Scenario, HasChildren { tags: readonly TypedTag[]; keyword: string; name: string; description: string; steps: readonly TypedStep[]; examples: readonly TypedExamples[]; id: string; constructor(originalNode: Scenario); get children(): ReadonlyArray; } export declare class TypedExamples extends TypedGherkinNodeWithLocation implements Examples, HasChildren { tags: readonly TypedTag[]; keyword: string; name: string; description: string; tableHeader?: TypedTableRow; tableBody: readonly TypedTableRow[]; id: string; constructor(originalNode: Examples); get children(): ReadonlyArray; } export declare class TypedTableRow extends TypedGherkinNodeWithLocation implements TableRow, HasChildren { cells: readonly TypedTableCell[]; id: string; columnSizes: number[] | undefined; constructor(originalNode: TableRow, columnSizes: number[]); get children(): ReadonlyArray; } export declare class TypedTableCell extends TypedGherkinNodeWithLocation implements TableCell { value: string; displaySize: number; constructor(originalNode: TableCell, displaySize: number); } export declare class TypedDocString extends TypedGherkinNodeWithLocation implements DocString { mediaType?: string; content: string; delimiter: string; constructor(originalNode: DocString); get nbRows(): number; } export declare class TypedDataTable extends TypedGherkinNodeWithLocation implements DataTable, HasChildren { rows: readonly TypedTableRow[]; constructor(originalNode: DataTable); get nbRows(): number; get children(): ReadonlyArray; } export {}; //# sourceMappingURL=index.d.ts.map