/**
 * Miscellaneous expression converters (conditional, template literals)
 */
import * as ts from "typescript";
import { IrConditionalExpression, IrTemplateLiteralExpression, IrType } from "../../types.js";
import type { ProgramContext } from "../../program-context.js";
/**
 * Convert conditional (ternary) expression
 *
 * DETERMINISTIC TYPING:
 * - Threads expectedType to both branches for consistent typing
 * - Result type stays as precise as the branches prove, even in contextual positions
 * Example: `new Uint8Array(flag ? 1 : size)` keeps the conditional as `int`,
 *   not `TypedArrayConstructorInput<byte>`, so later runtime-carrier selection
 *   still sees the numeric slot deterministically
 */
export declare const convertConditionalExpression: (node: ts.ConditionalExpression, ctx: ProgramContext, expectedType: IrType | undefined) => IrConditionalExpression;
/**
 * Convert template literal expression
 *
 * DETERMINISTIC TYPING: Template literals always produce string type.
 */
export declare const convertTemplateLiteral: (node: ts.TemplateExpression | ts.NoSubstitutionTemplateLiteral, ctx: ProgramContext) => IrTemplateLiteralExpression;
//# sourceMappingURL=other.d.ts.map