import { SourceExpression } from '../../models/Clause';
import { DataFlowGraph } from '../models/DataFlowGraph';
/**
 * Handles the processing of data sources (tables, CTEs, subqueries)
 */
export declare class DataSourceHandler {
    private graph;
    constructor(graph: DataFlowGraph);
    /**
     * Processes a source expression and returns the node ID
     */
    processSource(sourceExpr: SourceExpression, cteNames: Set<string>, queryProcessor: (query: any, context: string, cteNames: Set<string>) => string): string;
    /**
     * Processes a table source (including CTE references)
     */
    private processTableSource;
    /**
     * Processes a subquery source
     */
    private processSubquerySource;
    /**
     * Extracts table node IDs from a FROM clause for WHERE subqueries
     */
    extractTableNodeIds(fromClause: any, cteNames: Set<string>): string[];
}
