import { SyntaxToken } from '../lexer/tokens';
export declare const enum ParsingContext {
    ListExpression = 0,
    GroupExpression = 1,
    BlockExpression = 2
}
export declare class ParsingContextStack {
    private stack;
    private numberOfNestedLParens;
    private numberOfNestedLBrackets;
    private numberOfNestedLBraces;
    push(ctx: ParsingContext): void;
    pop(): ParsingContext | undefined;
    top(): ParsingContext | undefined;
    isWithinGroupExpressionContext(): boolean;
    isWithinListExpressionContext(): boolean;
    isWithinBlockExpressionContext(): boolean;
    withContextDo<T>(context: ParsingContext, callback: () => T): () => T;
    findHandlerContext(tokens: SyntaxToken[], curTokenId: number): ParsingContext | undefined;
}
