import { RuleToken } from "./ruleToken";
import { StatementType } from "./statementType";
import { SyntaxCollection } from "./syntaxCollection";
import { SyntaxLink } from "./syntaxLink";
export declare class GrammarStatement {
    private type;
    private _name;
    private _label;
    private _value;
    private alternatives;
    private unresolved;
    private multiplied;
    private greedy;
    private readonly statements;
    private readonly tokens;
    private token;
    syntax: SyntaxLink[];
    constructor(type: StatementType, tokens: RuleToken[], name?: string);
    processRule(): void;
    private addRuleAlternative;
    private processRuleAlternative;
    private processElements;
    private addAtom;
    private processToken;
    private addBlock;
    processBlock(tokens: RuleToken[]): void;
    private addAlternative;
    resolveStatements(rules: Map<string, GrammarStatement>, operators: Map<string, GrammarStatement>, visited: Map<string, GrammarStatement>): void;
    resolveSyntax(keywords: SyntaxCollection): void;
    private constructLink;
    isOptional(): boolean;
    is(type: StatementType): boolean;
    get name(): string | undefined;
    get label(): string | undefined;
    set label(label: string | undefined);
    get value(): string | undefined;
    private multiply;
    private isToken;
}
