type JsonPrimitive = string | number | boolean | null; type JsonValue = JsonPrimitive | JsonValue[] | { [key: string]: JsonValue; }; export interface ManifestDefaultAttribute { typia: { defaultValue: JsonValue | null; hasDefault: boolean; }; ts: { items: ManifestDefaultAttribute | null; kind: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'union'; properties: Record | null; required: boolean; union: { branches: Record; discriminator: string; } | null; }; } export interface ManifestDefaultsDocument { attributes: Record; } export declare function isManifestDefaultsDocument(value: unknown): value is ManifestDefaultsDocument; export declare function assertManifestDefaultsDocument(value: unknown): TDocument; export declare function parseManifestDefaultsDocument(value: unknown): TDocument; /** * Wrapper helper for generated manifest-default modules. * * Generated projects validate the raw JSON once at import time so validator * tooling can consume the stricter defaults-oriented contract without local * parse calls. JSON module inference widens nested discriminators like * `ts.kind`, so the compile-time constraint stays shallow while the runtime * parser enforces the full manifest-default contract. */ export declare function defineManifestDefaultsDocument; }>(manifest: TDocument): ManifestDefaultsDocument & TDocument; /** * Apply manifest-declared defaults to a partial scaffold attribute object. * * @param manifest - Manifest default metadata generated from the scaffold contract. * @param value - Partial attribute input to normalize. * @returns The same object shape with recursive defaults applied where available. * @example * ```ts * const normalized = applyTemplateDefaultsFromManifest(manifest, { layout: {} }); * ``` * @category Scaffolding */ export declare function applyTemplateDefaultsFromManifest(manifest: ManifestDefaultsDocument, value: Partial): Partial; export {};