import { SelectQuery } from '../models/SelectQuery';
export interface BaseMermaidOptions {
    /** Diagram title */
    title?: string;
}
export interface FlowDiagramOptions extends BaseMermaidOptions {
    /** Show detailed information (columns, conditions) */
    showDetails?: boolean;
    /** Include CTE dependencies */
    showCTEDependencies?: boolean;
    /** Direction of flow (top-down, left-right) */
    direction?: 'TD' | 'LR' | 'TB' | 'RL';
}
/**
 * QueryFlowDiagramGenerator using model-based architecture
 * Generates Mermaid diagrams from SQL queries following consistent principles
 */
export declare class QueryFlowDiagramGenerator {
    private graph;
    private dataSourceHandler;
    private joinHandler;
    private processHandler;
    private cteHandler;
    constructor();
    generateMermaidFlow(query: SelectQuery | string, options?: FlowDiagramOptions): string;
    static generate(sql: string): string;
    private processQuery;
    private processSimpleQuery;
    private processBinaryQuery;
    private processSimpleBinaryOperation;
    private processMultiPartOperation;
    private handleOutputNode;
    /**
     * Flattens a binary operation chain into individual parts
     */
    private flattenBinaryChain;
}
