import type { SelectQuery } from '../models/SelectQuery';
import type { InsertQuery } from '../models/InsertQuery';
import type { UpdateQuery } from '../models/UpdateQuery';
import type { DeleteQuery } from '../models/DeleteQuery';
import type { CreateTableQuery } from '../models/CreateTableQuery';
import type { MergeQuery } from '../models/MergeQuery';
import type { DropTableStatement, DropIndexStatement, CreateIndexStatement, CreateSchemaStatement, DropSchemaStatement, AlterTableStatement, DropConstraintStatement, AnalyzeStatement, ExplainStatement, CreateSequenceStatement, AlterSequenceStatement, CommentOnStatement, VacuumStatement, ReindexStatement, ClusterStatement, CheckpointStatement } from '../models/DDLStatements';
export type ParsedStatement = SelectQuery | InsertQuery | UpdateQuery | DeleteQuery | CreateTableQuery | MergeQuery | DropTableStatement | DropIndexStatement | DropSchemaStatement | CreateIndexStatement | CreateSchemaStatement | CreateSequenceStatement | AlterTableStatement | AlterSequenceStatement | CommentOnStatement | DropConstraintStatement | AnalyzeStatement | ExplainStatement | VacuumStatement | ReindexStatement | ClusterStatement | CheckpointStatement;
export interface SqlParserOptions {
    mode?: 'single' | 'multiple';
    skipEmptyStatements?: boolean;
}
export interface SqlParserManyOptions {
    skipEmptyStatements?: boolean;
}
/**
 * Canonical entry point for SQL parsing.
 * Delegates to dedicated parsers for SELECT, INSERT, UPDATE, and DELETE statements, and is designed to embrace additional statement types next.
 */
export declare class SqlParser {
    static parse(sql: string, options?: SqlParserOptions): ParsedStatement;
    static parseMany(sql: string, options?: SqlParserManyOptions): ParsedStatement[];
    private static dispatchParse;
    private static parseSelectStatement;
    private static parseExplainStatement;
    private static parseVacuumStatement;
    private static parseReindexStatement;
    private static parseClusterStatement;
    private static parseCheckpointStatement;
    private static parseInsertStatement;
    private static parseUpdateStatement;
    private static parseDeleteStatement;
    private static parseCreateTableStatement;
    private static parseDropTableStatement;
    private static parseDropSchemaStatement;
    private static parseDropIndexStatement;
    private static parseCreateIndexStatement;
    private static parseCreateSchemaStatement;
    private static parseCreateSequenceStatement;
    private static parseAlterSequenceStatement;
    private static parseAlterTableStatement;
    private static parseDropConstraintStatement;
    private static parseCommentOnStatement;
    private static parseAnalyzeStatement;
    private static parseMergeStatement;
    private static parseStatementWithParser;
    private static parseStatementWithCallback;
    private static assertFullyConsumed;
    private static errorMessage;
    private static getCommandAfterWith;
    private static readNextMeaningfulStatement;
    private static consumeNextStatement;
}
