import type { Expression } from "../../types.js";
/**
 * Print a tag argument (an Agency Expression from the restricted subset
 * accepted inside `@validate(...)` / `@jsonSchema(...)`) as a valid
 * TypeScript expression string.
 *
 * Only the subset that the tag parser actually accepts is handled:
 * string / number / boolean / null literals, identifiers, function calls,
 * object literals (including spread). Anything else is a bug and produces
 * a clearly-broken output.
 *
 * `valueParamNames` (optional): when supplied, an identifier whose name
 * matches any entry throws — this catches accidental skips of the
 * value-parameter substitution pass. A value-param identifier must
 * never reach codegen; if it does, something upstream is broken and
 * we want it to fail loudly rather than emit a bogus reference to an
 * out-of-scope name.
 */
export declare function tagArgToTs(expr: Expression, valueParamNames?: ReadonlyArray<string>): string;
