import { Lexeme } from "../models/Lexeme";
import { ValueComponent, TypeValue } from "../models/ValueComponent";
export declare class FunctionExpressionParser {
    /**
     * Parse ARRAY expressions - handles both ARRAY[...] (literal) and ARRAY(...) (query) syntax
     * @param lexemes Array of lexemes to parse
     * @param index Current parsing index
     * @returns Parsed array expression and new index
     */
    private static parseArrayExpression;
    static parseFromLexeme(lexemes: Lexeme[], index: number): {
        value: ValueComponent;
        newIndex: number;
    };
    static tryParseBinaryExpression(lexemes: Lexeme[], index: number, left: ValueComponent, allowAndOperator?: boolean): {
        value: ValueComponent;
        newIndex: number;
    } | null;
    static parseBetweenExpression(lexemes: Lexeme[], index: number, value: ValueComponent, negated: boolean): {
        value: ValueComponent;
        newIndex: number;
    };
    private static parseFunctionCall;
    private static parseKeywordFunction;
    static parseTypeValue(lexemes: Lexeme[], index: number): {
        value: TypeValue;
        newIndex: number;
    };
}
