/**
 * Literal expression converters
 *
 * DETERMINISTIC TYPING: Literal types are derived from lexeme form, NOT TypeScript.
 *
 * Numeric literals:
 * - Integer literals (42, 0xFF) → Int32 → inferredType: int
 * - Floating literals (42.0, 3.14, 1e3) → Double → inferredType: double
 *
 * String literals → inferredType: string
 * Boolean literals → inferredType: boolean (handled elsewhere)
 */
import * as ts from "typescript";
import { IrLiteralExpression, IrNewExpression } from "../../types.js";
import type { ProgramContext } from "../../program-context.js";
/**
 * Convert string or numeric literal
 *
 * DETERMINISTIC TYPING: inferredType is derived from the literal value itself,
 * NOT from TypeScript's type checker. This ensures consistent typing regardless
 * of contextual type.
 */
export declare const convertLiteral: (node: ts.StringLiteral | ts.NumericLiteral, _ctx: ProgramContext) => IrLiteralExpression;
export declare const convertRegularExpressionLiteral: (node: ts.RegularExpressionLiteral, ctx: ProgramContext) => IrNewExpression;
//# sourceMappingURL=literals.d.ts.map