import { MultiplyMode } from "./multiplyMode";
import { StatementType } from "./statementType";
import { SyntaxCollection } from "./syntaxCollection";
export declare class SyntaxLink {
    private _type;
    private _chain;
    private _keywords;
    private _value;
    private _syntax;
    private _alternatives;
    private _multiplied;
    constructor(value?: string);
    add(entry: SyntaxLink): void;
    addAll(entries: SyntaxLink[]): void;
    collapse(): void;
    private overwrite;
    constructSyntax(): void;
    private multiplyPrefix;
    private multiplyPostfix;
    contains(value: string): boolean;
    get alternatives(): boolean;
    set alternatives(alternatives: boolean);
    get value(): string;
    get chain(): SyntaxLink[];
    set keyword(value: string);
    set operator(value: string);
    set operand(value: string);
    set rule(value: string);
    get syntax(): string;
    get multiplied(): MultiplyMode;
    set multiplied(value: MultiplyMode);
    get type(): StatementType;
    private isType;
    isAlternativeKeywords(): boolean;
    hasKeyword: () => boolean;
    hasChain: () => boolean;
    hasValue: () => boolean;
    isEmpty: () => boolean;
    isMultiplied: () => boolean;
    isOptional: () => boolean;
    collectSyntax(keywords: SyntaxCollection): void;
    /**
     * Removes erroneous optional flags added to tokens and statements during tokenizing process.
     */
    unOption(): void;
}
