/**
 * Phase 4C Test Suite - Enhanced Field Disambiguation
 *
 * Tests the ability to handle ambiguous field names across tables.
 * When multiple tables have fields with the same name (e.g., 'name', 'key', 'id'),
 * the system should intelligently disambiguate or allow explicit table prefixes.
 *
 * Key scenarios:
 * 1. Automatic disambiguation based on primary entity
 * 2. Explicit table prefixes (flags.name vs events.name)
 * 3. JOIN queries with ambiguous fields
 * 4. Error handling for truly ambiguous cases
 */
import { UniversalQuery } from './types.js';
interface TestResult {
    testName: string;
    query: UniversalQuery;
    expectedBehavior: string;
    actualResult: any;
    success: boolean;
    executionTime: number;
    error?: string;
}
export declare class FieldDisambiguationTester {
    private engine;
    private results;
    private db;
    constructor(dbPath?: string);
    /**
     * Run single test
     */
    runSingleTest(name: string, query: UniversalQuery, expectedBehavior: string): Promise<TestResult>;
    /**
     * Test automatic disambiguation
     */
    testAutomaticDisambiguation(): Promise<TestResult[]>;
    /**
     * Test explicit table prefixes
     */
    testExplicitTablePrefixes(): Promise<TestResult[]>;
    /**
     * Test JOIN disambiguation
     */
    testJoinDisambiguation(): Promise<TestResult[]>;
    /**
     * Test ambiguity detection and errors
     */
    testAmbiguityErrors(): Promise<TestResult[]>;
    /**
     * Test field aliasing
     */
    testFieldAliasing(): Promise<TestResult[]>;
    /**
     * Test aggregation disambiguation
     */
    testAggregationDisambiguation(): Promise<TestResult[]>;
    /**
     * Run all tests
     */
    runAllTests(): Promise<void>;
    /**
     * Print test summary
     */
    private printSummary;
}
export {};
//# sourceMappingURL=test-phase4c-field-disambiguation.d.ts.map