import { DBSQLParameter, DBSQLParameterValue } from '../DBSQLParameter'; /** * Reject a parameter value that cannot be bound as a scalar. Arrays and plain * objects stringify to garbage (e.g. `[1,2,3]` → `"1,2,3"`) that the server * fails to coerce — on the Thrift path the operation never returns to * FINISHED (a DoS hazard), and on kernel it surfaces an opaque server error. We * fail fast at bind time instead, mirroring the kernel's compound-type * rejection. `DBSQLParameter`, `Int64`, `Date`, and JS primitives are allowed. * * Parameter-marker counting and arity validation are intentionally NOT done * here: the kernel's `statement::params` codec owns that check and binds * exactly one placeholder style per statement, so duplicating the SQL-walk * JS-side would only risk drift. The driver's sole bind-time job is this * cheap, type-shape gate before the value crosses the napi boundary. */ export default function assertBindableValue(value: DBSQLParameter | DBSQLParameterValue, label: string): void;