/** * Shared JSON-Schema keyword sets and the error type used by the * codegen emitter. Lives in its own module so `codegen-emit.ts` * stays under the 500-line per-file budget. * * @module cli/codegen-emit-keywords */ import { WeftError } from '../core/weft-error.ts'; export declare const ANNOTATION_ONLY_KEYWORDS: ReadonlySet; /** Keys each per-shape dispatcher in the emitter understands. */ export declare const PRIMITIVE_SUPPORTED_KEYS: readonly ["type"]; export declare const OBJECT_SUPPORTED_KEYS: readonly ["type", "properties", "required", "additionalProperties"]; export declare const ARRAY_SUPPORTED_KEYS: readonly ["type", "items", "prefixItems", "additionalItems"]; /** * Thrown by the emitter when the converter cannot produce a type it * is willing to stand behind (e.g. recursion overflow). Callers must * translate this to a user-facing diagnostic. */ export declare class CodegenEmitError extends WeftError<'CodegenEmitError'> { constructor(message: string); } /** * Returns true when `node` has any own key not in `expected` and not * in {@link ANNOTATION_ONLY_KEYWORDS}. Used by combinator, * enum/const, and type/shape dispatchers to detect sibling * constraints they cannot compose with. */ export declare function hasUnexpectedSibling(node: Record, expected: readonly string[]): boolean;