import { I as IFormConfig } from './IFormConfig-DTk5E-4l.mjs'; import './IFieldConfig-BTAQmStl.mjs'; import './index-0OEeDC7T.mjs'; /** * JSON Schema node type (supports draft-04 through draft-2020-12 features used by RJSF). */ interface IJsonSchemaNode { $ref?: string; definitions?: Record; $defs?: Record; type?: string | string[]; const?: unknown; title?: string; description?: string; default?: unknown; minLength?: number; maxLength?: number; pattern?: string; format?: string; minimum?: number; maximum?: number; exclusiveMinimum?: number; exclusiveMaximum?: number; multipleOf?: number; enum?: unknown[]; enumNames?: string[]; properties?: Record; required?: string[]; additionalProperties?: boolean | IJsonSchemaNode; items?: IJsonSchemaNode | IJsonSchemaNode[]; minItems?: number; maxItems?: number; uniqueItems?: boolean; oneOf?: IJsonSchemaNode[]; anyOf?: IJsonSchemaNode[]; allOf?: IJsonSchemaNode[]; if?: IJsonSchemaNode; then?: IJsonSchemaNode; else?: IJsonSchemaNode; dependencies?: Record; [key: string]: unknown; } /** * RJSF uiSchema type — controls rendering hints separate from the data schema. */ interface IRjsfUiSchema { "ui:widget"?: string; "ui:field"?: string; "ui:options"?: Record; "ui:order"?: string[]; "ui:hidden"?: boolean; "ui:readonly"?: boolean; "ui:disabled"?: boolean; "ui:placeholder"?: string; "ui:title"?: string; "ui:description"?: string; "ui:help"?: string; "ui:autofocus"?: boolean; "ui:enumDisabled"?: unknown[]; "ui:enumNames"?: string[]; "ui:label"?: boolean; "ui:classNames"?: string; "ui:submitButtonOptions"?: Record; [fieldName: string]: unknown; } /** * Options for controlling the RJSF-to-IFormConfig conversion. */ interface IRjsfConvertOptions { /** "flatten" = dot-notation keys (default), "fieldArray" = FieldArray items */ nestedObjectStrategy?: "flatten" | "fieldArray"; /** Prefix for generated rule IDs (default: "rjsf") */ ruleIdPrefix?: string; } /** * Convert an RJSF schema + uiSchema + formData into an IFormConfig (v2). * * This is the main entry point for RJSF migration. It: * 1. Resolves all $ref pointers * 2. Merges allOf if present * 3. Maps properties to IFieldConfig * 4. Applies uiSchema rendering hints * 5. Merges formData as defaultValues * 6. Converts dependencies → IRule[] * 7. Converts if/then/else → IRule[] * 8. Converts oneOf/anyOf → IRule[] * 9. Determines fieldOrder from uiSchema or property order */ declare function fromRjsfSchema(schema: IJsonSchemaNode, uiSchema?: IRjsfUiSchema, formData?: Record, options?: IRjsfConvertOptions): IFormConfig; /** * Reverse-convert an IFormConfig to JSON Schema + uiSchema. * * Best-effort: structural fidelity only. Rules, computed values, * and other dynamic features do NOT map back to JSON Schema. */ declare function toRjsfSchema(config: IFormConfig): { schema: IJsonSchemaNode; uiSchema: IRjsfUiSchema; }; export { type IJsonSchemaNode, type IRjsfConvertOptions, type IRjsfUiSchema, fromRjsfSchema, toRjsfSchema };