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; }