import type { Grammar } from '../grammar.js';
export interface Token {
    type: string;
    raw?: string;
    right?: Token;
    _parent?: Token;
    args?: Token[];
    value?: unknown | unknown[];
    operator?: string;
    expr?: Token;
    subject?: Token;
    relative?: boolean;
    from?: Token;
    name?: string;
    pool?: string;
    left?: Token;
    test?: Token;
    consequent?: Token;
    alternate?: Token;
}
export default class Parser {
    _grammar: Grammar;
    _state: string;
    _tree: Token | null;
    _exprStr: string;
    _relative: boolean;
    _stopMap: Record<string, unknown>;
    _subParser: any;
    _parentStop: any;
    _cursor?: Token;
    _nextIdentEncapsulate?: boolean;
    _nextIdentRelative?: boolean;
    _curObjKey?: string;
    constructor(grammar: Grammar, prefix?: string, stopMap?: Record<string, unknown>);
    addToken(token: Token): boolean | unknown;
    addTokens(tokens: Token[]): void;
    complete(): Token | null;
    isRelative(): boolean;
    _endSubExpression(): void;
    _placeAtCursor(node: Token): void;
    _placeBeforeCursor(node: Token): void;
    _setParent(node: Token, parent: Token): void;
    _startSubExpression(exprStr?: string): void;
    private argVal;
    private arrayStart;
    private arrayVal;
    private binaryOp;
    private dot;
    private filter;
    private functionCall;
    private _buildFullIdentifierPath;
    private identifier;
    private literal;
    private objKey;
    private objStart;
    private objVal;
    private subExpression;
    private ternaryEnd;
    private ternaryMid;
    private ternaryStart;
    private transform;
    private unaryOp;
    private _getHandlerMethod;
    private pipe;
    private _getTokenHandlerMethod;
    private _getSubHandlerMethod;
}
//# sourceMappingURL=Parser.d.ts.map