import { type ReactElement } from "react"; import { type FieldRole } from "../schema-heuristics.js"; interface SchemaSelectFieldDef { type: "custom"; label: string; render: (props: { field: SchemaSelectFieldDef; name: string; id: string; label: string; value: string; onChange: (value: string) => void; readOnly?: boolean; }) => ReactElement; } interface SchemaSelectFieldOptions { label?: string; datasourcePropName?: string; fallbackFields?: { path: string; description: string; }[]; togglePropName?: string; required?: boolean; typeHint?: string; /** * When set, an unset value (`undefined` — never chosen by the user) is * displayed as the field auto-mapping would resolve it, instead of as * "None". A user picking "None" explicitly still stores `""` and is * displayed as "None", since that is a deliberate choice to disable the * mapping. */ autoMapRole?: FieldRole; } export declare function extractFieldPaths(obj: Record, prefix?: string, maxDepth?: number): { path: string; description: string; }[]; export declare function createSchemaSelectField(options?: SchemaSelectFieldOptions): SchemaSelectFieldDef; export {};