import type { ConnectionConfig } from './connector.js'; export type SQLParamSpec = { name: string; position: number; literalValue?: unknown; }; export interface ExpandedSQLParams { sql: string; params: SQLParamSpec[]; variables: Record; } export declare function buildParamValues(params: SQLParamSpec[], variables: Record): unknown[]; /** * Expand array-valued template variables into ordinary positional placeholders. * * DQL blocks keep one business parameter such as `${team_set}` so app filters * and review metadata stay readable. At execution time, an array value is * rewritten from `IN ($1)` to `IN ($1, $2, ...)` with one bind value per item. */ export declare function expandArrayParameters(sql: string, params: SQLParamSpec[], variables: Record): ExpandedSQLParams; /** * Normalize "$N" placeholders emitted by the compiler to the placeholder syntax * expected by each driver. * * - PostgreSQL: "$1" (no change) * - MSSQL: keep "$N" (driver rewrites to "@pN" while binding) * - Others (Snowflake/BigQuery/MySQL/SQLite/DuckDB): "?" positional */ export declare function normalizeSQLPlaceholders(sql: string, driver: ConnectionConfig['driver']): string; //# sourceMappingURL=sql-params.d.ts.map