import { FromClause } from '../../models/Clause';
import { DataFlowGraph } from '../models/DataFlowGraph';
import { DataSourceHandler } from './DataSourceHandler';
/**
 * Handles the processing of JOIN operations
 */
export declare class JoinHandler {
    private graph;
    private dataSourceHandler;
    private joinIdCounter;
    constructor(graph: DataFlowGraph, dataSourceHandler: DataSourceHandler);
    /**
     * Resets the join ID counter for deterministic IDs
     */
    resetJoinCounter(): void;
    /**
     * Gets the next join ID
     */
    private getNextJoinId;
    /**
     * Processes a FROM clause with JOINs and returns the final node ID
     */
    processFromClause(fromClause: FromClause, cteNames: Set<string>, queryProcessor: (query: any, context: string, cteNames: Set<string>) => string): string;
    /**
     * Processes a series of JOINs sequentially
     */
    private processJoins;
    /**
     * Gets nullability labels for JOIN edges based on JOIN type
     */
    private getJoinNullabilityLabels;
}
