import { SqlComponent } from '../models/SqlComponent';
import { InsertResultSelectOptions } from './InsertResultSelectConverter';
import { UpdateResultSelectOptions } from './UpdateResultSelectConverter';
import { DeleteResultSelectOptions } from './DeleteResultSelectConverter';
import { MergeResultSelectOptions } from './MergeResultSelectConverter';
import { SelectResultSelectOptions } from './SelectResultSelectConverter';
export type SimulatedSelectOptions = InsertResultSelectOptions & UpdateResultSelectOptions & DeleteResultSelectOptions & MergeResultSelectOptions & SelectResultSelectOptions;
export declare class SimulatedSelectConverter {
    /**
     * Converts a SQL statement into a simulated SELECT statement for previewing results.
     *
     * Rules:
     * 1. INSERT/UPDATE/DELETE/MERGE: Converted to SELECT statement showing affected rows.
     * 2. SELECT: Preserved as is (with fixtures injected).
     * 3. CREATE TEMPORARY TABLE ... AS SELECT: Preserved as is (with fixtures injected into inner SELECT).
     * 4. Other DDL (CREATE TABLE, DROP, ALTER, etc.): Ignored (returns null).
     *
     * @param ast The SQL component to convert
     * @param options Options for conversion (fixtures, table definitions, etc.)
     * @returns The converted SqlComponent or null if the statement should be ignored.
     */
    static convert(ast: SqlComponent, options?: SimulatedSelectOptions): SqlComponent | null;
}
