import { IMarkdownString, languages } from "monaco-editor";
export declare class SyntaxCollection {
    entries: SyntaxEntry[];
    private _levels;
    terminated: boolean;
    addAll(entries: SyntaxEntry[]): void;
    isEmpty: () => boolean;
    notEmpty: () => boolean;
    size: () => number;
    createLevel(optional: boolean): SyntaxLevel;
    terminateLevel(): void;
    addKeyword(keyword: string, syntax: string, snippet: string, optional: boolean): void;
    append(syntax: string, snippet: string): void;
    distinct(): void;
}
export declare class SyntaxLevel {
    entries: SyntaxEntry[];
    optional: boolean;
    constructor(optional: boolean);
    add(entry: SyntaxEntry): void;
    append(keyword: string, syntax: string, snippet: string): void;
    terminate(): void;
}
export declare class SyntaxEntry {
    private _keyword;
    private _syntax;
    private _snippet;
    private _markdown;
    private _terminated;
    private _kind;
    private round;
    private openRound;
    private square;
    private openSquare;
    private curly;
    private openCurly;
    private angle;
    private openAngle;
    constructor(keyword: string);
    terminate(): void;
    get keyword(): string;
    get syntax(): string;
    get markdown(): IMarkdownString;
    get snippet(): string;
    get terminated(): boolean;
    append(keyword: string, syntax: string, snippet: string): void;
    equals(entry: SyntaxEntry): boolean;
    completionKind(): languages.CompletionItemKind;
}
