import { SourceComponent } from "../models/Clause";
import { Lexeme } from "../models/Lexeme";
export declare class SourceParser {
    static parse(query: string): SourceComponent;
    /**
     * Parses only a TableSource from the given lexemes, regardless of the presence of parentheses after the identifier.
     * This method is specifically used for cases like INSERT queries (e.g., "insert into table_name (col1, col2)")
     * where a parenthesis immediately following the table name could otherwise be misinterpreted as a function call.
     * By using this method, the parser forcibly treats the source as a TableSource.
     *
     * @param lexemes The array of lexemes to parse.
     * @param index The starting index in the lexeme array.
     * @returns An object containing the parsed TableSource and the new index.
     */
    static parseTableSourceFromLexemes(lexemes: Lexeme[], index: number): {
        value: SourceComponent;
        newIndex: number;
    };
    static parseFromLexeme(lexemes: Lexeme[], index: number): {
        value: SourceComponent;
        newIndex: number;
    };
    private static parseTableSource;
    private static parseFunctionSource;
    private static parseParenSource;
    private static parseSubQuerySource;
}
