import type { ConversionUnit } from "../../workflows/types.ts"; type ScalarKind = "number" | "integer" | "string" | "boolean"; export interface CompilerLanguageRuleProfile { language: string; parameter(name: string, scalar: ScalarKind): string; returnExpression(expression: string): string; outputExpression(expression: string): string | undefined; } /** One explicit syntax profile for every language accepted by discovery. */ export declare const COMPILER_LANGUAGE_RULE_PROFILES: Readonly>; /** * Deterministically reduce an instruction to the wording the structural rules * read. Punctuation that only separates a role from its operands becomes a * space, filler disappears, and whitespace collapses. The result is never shown * to a user or a model; it exists only so matching is phrasing-insensitive. */ export declare function normalizeRuleInstruction(instruction: string): string; /** * Derive an expected replacement only when the marker grammar and instruction * match a complete, unambiguous rule. The runtime never uses this value as * generated code: every unreplayed instruction is sent to the model first, and * this expectation can only reject output that contradicts a narrow structural * requirement. Undefined means the general validators decide on their own. */ export declare function expectedCodeFromLanguageRules(unit: ConversionUnit): string | undefined; /** * Model names from local runtimes commonly include a parameter-size suffix * (`270m`, `0.5b`, `1.5b`). The smallest explicit sizes are unlikely to generate * usable code. This classification is advisory only and never changes routing. */ export declare function isModelLikelyTooSmallForCode(model: string): boolean; /** * Compatibility alias for the 1.0 API. It returns a validation expectation; * Human-to-Code itself never uses the result to bypass model generation. * * @deprecated Use `expectedCodeFromLanguageRules`. */ export declare const compileInstructionWithLanguageRules: typeof expectedCodeFromLanguageRules; /** * Compatibility alias for the 1.0 API. Model size is now warning-only. * * @deprecated Use `isModelLikelyTooSmallForCode`. */ export declare const prefersDeterministicLanguageRules: typeof isModelLikelyTooSmallForCode; export {}; //# sourceMappingURL=language-rules.d.ts.map