import { GherkinCommentHandler } from "../common";
import { GherkinFeature } from "../gherkinObject";
import { Comment } from "./comment";
import { Element } from "./element";
import { Rule } from "./rule";
import { Tag } from "./tag";
import { UniqueObject } from "./uniqueObject";
/**
 * Model for Feature
 */
export declare class Feature extends UniqueObject {
    static parse(obj: GherkinFeature, comments?: GherkinCommentHandler): Feature;
    /** Language of the Feature */
    language: string;
    /** Keyword of the Feature */
    keyword: "Feature" | "Business Need" | "Ability" | string;
    /** Name of the Feature */
    name: string;
    /** Descrition of the Feature */
    description: string;
    /** Elements of the Feature */
    elements: (Element | Rule)[];
    /** Tags of the Feature */
    tags: Tag[];
    /** Comment before all tag */
    tagComment: Comment;
    /** Comment before the Feature */
    precedingComment: Comment;
    /** Comment below the description of the Feature */
    descriptionComment: Comment;
    constructor(keyword: string, name: string, description: string, language?: string);
    clone(): Feature;
    replace(key: RegExp | string, value: string): void;
}
