import type { Component, HTMLAttributes, VNodeChild } from 'vue'; import type { AutoCompleteInstance } from '../auto-complete'; import type { CascaderInstance } from '../cascader'; import type { CheckboxGroupInstance, CheckboxInstance } from '../checkbox'; import type { DatePickerInstance, RangePickerInstance } from '../date-picker'; import type { FieldRule, FormItemInstance } from '../form'; import type { GridColInstance, GridRowInstance } from '../grid'; import type { InputInstance, InputPasswordInstance, InputSearchInstance } from '../input'; import type { InputNumberInstance } from '../input-number'; import type { InputTagInstance } from '../input-tag'; import type { MentionInstance } from '../mention'; import type { RadioGroupInstance, RadioInstance } from '../radio'; import type { RateInstance } from '../rate'; import type { SelectInstance } from '../select'; import type { SliderInstance } from '../slider'; import type { SwitchInstance } from '../switch'; import type { TextareaInstance } from '../textarea'; import type { TimePickerInstance } from '../time-picker'; import type { TransferInstance } from '../transfer'; import type { TreeSelectInstance } from '../tree-select'; import type { VerificationCodeInstance } from '../verification-code'; export declare const A2UI_0_9_1: "a2ui-0.9.1"; export declare const JSON_FORM_ADAPTERS: { readonly default: "default"; readonly a2ui_0_9_1: "a2ui-0.9.1"; }; export declare const JSON_FORM_COMPONENT_TYPES: { readonly autoComplete: "autoComplete"; readonly cascader: "cascader"; readonly checkbox: "checkbox"; readonly checkboxGroup: "checkboxGroup"; readonly datePicker: "datePicker"; readonly input: "input"; readonly inputNumber: "inputNumber"; readonly inputPassword: "inputPassword"; readonly inputSearch: "inputSearch"; readonly inputTag: "inputTag"; readonly mention: "mention"; readonly radio: "radio"; readonly radioGroup: "radioGroup"; readonly rangePicker: "rangePicker"; readonly rate: "rate"; readonly row: "row"; readonly select: "select"; readonly slider: "slider"; readonly switch: "switch"; readonly textarea: "textarea"; readonly timePicker: "timePicker"; readonly transfer: "transfer"; readonly treeSelect: "treeSelect"; readonly verificationCode: "verificationCode"; readonly noFormItem: "noFormItem"; }; export type JsonFormAdapter = (typeof JSON_FORM_ADAPTERS)[keyof typeof JSON_FORM_ADAPTERS]; export type JsonFormBuiltinComponentType = (typeof JSON_FORM_COMPONENT_TYPES)[keyof typeof JSON_FORM_COMPONENT_TYPES]; export type JsonFormExternalComponentMap = Record; type ComponentPropsOf = T extends new (...args: never[]) => { $props: infer P; } ? P : never; type ComponentEmitOf = T extends new (...args: never[]) => { $emit: infer E; } ? E : never; type JsonFormBuiltInComponentPropsMap = { autoComplete: AutoCompleteInstance['$props']; cascader: CascaderInstance['$props']; checkbox: CheckboxInstance['$props']; checkboxGroup: CheckboxGroupInstance['$props']; datePicker: DatePickerInstance['$props']; input: InputInstance['$props']; inputNumber: InputNumberInstance['$props']; inputPassword: InputPasswordInstance['$props']; inputSearch: InputSearchInstance['$props']; inputTag: InputTagInstance['$props']; mention: MentionInstance['$props']; radio: RadioInstance['$props']; radioGroup: RadioGroupInstance['$props']; rangePicker: RangePickerInstance['$props']; rate: RateInstance['$props']; row: GridRowInstance['$props']; select: SelectInstance['$props']; slider: SliderInstance['$props']; switch: SwitchInstance['$props']; textarea: TextareaInstance['$props']; timePicker: TimePickerInstance['$props']; transfer: TransferInstance['$props']; treeSelect: TreeSelectInstance['$props']; verificationCode: VerificationCodeInstance['$props']; noFormItem: Record; }; type JsonFormBuiltInComponentEventsMap = { autoComplete: AutoCompleteInstance['$emit']; cascader: CascaderInstance['$emit']; checkbox: CheckboxInstance['$emit']; checkboxGroup: CheckboxGroupInstance['$emit']; datePicker: DatePickerInstance['$emit']; input: InputInstance['$emit']; inputNumber: InputNumberInstance['$emit']; inputPassword: InputPasswordInstance['$emit']; inputSearch: InputSearchInstance['$emit']; inputTag: InputTagInstance['$emit']; mention: MentionInstance['$emit']; radio: RadioInstance['$emit']; radioGroup: RadioGroupInstance['$emit']; rangePicker: RangePickerInstance['$emit']; rate: RateInstance['$emit']; row: GridRowInstance['$emit']; select: SelectInstance['$emit']; slider: SliderInstance['$emit']; switch: SwitchInstance['$emit']; textarea: TextareaInstance['$emit']; timePicker: TimePickerInstance['$emit']; transfer: TransferInstance['$emit']; treeSelect: TreeSelectInstance['$emit']; verificationCode: VerificationCodeInstance['$emit']; noFormItem: Record unknown>; }; type JsonFormBuiltInComponentMap = { [K in JsonFormBuiltinComponentType]: K extends keyof JsonFormBuiltInComponentPropsMap ? Component : never; }; type JsonFormKnownComponentMap = JsonFormBuiltInComponentMap & TExternal; type JsonFormKnownComponentType = Extract, string>; type JsonFormResolvedComponentProps = TType extends keyof JsonFormBuiltInComponentPropsMap ? JsonFormBuiltInComponentPropsMap[TType] : TType extends keyof TExternal ? ComponentPropsOf : Record; type JsonFormResolvedComponentEvents = TType extends keyof JsonFormBuiltInComponentEventsMap ? JsonFormBuiltInComponentEventsMap[TType] : TType extends keyof TExternal ? ComponentEmitOf : Record unknown>; export type JsonFormComponentType = JsonFormKnownComponentType | (string & {}); export type JsonFormComponentProps = string extends TType ? Record & HTMLAttributes : JsonFormResolvedComponentProps & HTMLAttributes; export type JsonFormComponentEvents = JsonFormResolvedComponentEvents; export type JsonFormComponentSlotRenderer = Component | ((...args: never[]) => VNodeChild); export type JsonFormItemSlotProps = { record?: JsonFormSchema, TExternal>; value?: unknown; } & Record; type JsonFormBaseSchema = { field: string; label?: string; type?: TType; required?: boolean; hidden?: boolean; slotName?: string; render?: () => VNodeChild; span?: number; colProps?: GridColInstance['$props']; formItemProps?: Omit; formItemRules?: FieldRule | FieldRule[]; formItemEvents?: ComponentEmitOf; componentProps?: JsonFormComponentProps; componentEvents?: JsonFormComponentEvents; componentSlots?: Record; children?: JsonFormSchema, TExternal>[]; }; export type JsonFormSchema = JsonFormBaseSchema; export type JsonFormComponentRegistry = Partial, Component>>; export type JsonFormProviderConfig = { adapter?: JsonFormAdapter; components?: JsonFormComponentRegistry; }; export type JsonFormModel = Record; export type JsonFormProps = { schemas: JsonFormSchema, TExternal>[] | JsonFormA2UI_0_9_1ComponentNode[]; adapter?: JsonFormAdapter; model?: JsonFormModel; hideLabel?: boolean; hideAsterisk?: boolean; showColon?: boolean; component?: string | Component; }; export type JsonFormA2UI_0_9_1DataBinding = { path: string; }; export type JsonFormA2UI_0_9_1FunctionCall = { call: string; args?: Record; returnType?: 'string' | 'number' | 'boolean' | 'array' | 'object' | 'any' | 'void'; }; export type JsonFormA2UI_0_9_1DynamicString = string | JsonFormA2UI_0_9_1DataBinding | (JsonFormA2UI_0_9_1FunctionCall & { returnType: 'string'; }); export type JsonFormA2UI_0_9_1DynamicNumber = number | JsonFormA2UI_0_9_1DataBinding | (JsonFormA2UI_0_9_1FunctionCall & { returnType: 'number'; }); export type JsonFormA2UI_0_9_1DynamicBoolean = boolean | JsonFormA2UI_0_9_1DataBinding | (JsonFormA2UI_0_9_1FunctionCall & { returnType: 'boolean'; }); export type JsonFormA2UI_0_9_1DynamicStringList = string[] | JsonFormA2UI_0_9_1DataBinding | (JsonFormA2UI_0_9_1FunctionCall & { returnType: 'array'; }); export type JsonFormA2UI_0_9_1CheckRule = { condition: JsonFormA2UI_0_9_1DynamicBoolean; message: string; }; export type JsonFormA2UI_0_9_1ChoiceOption = { label: JsonFormA2UI_0_9_1DynamicString; value: string; }; export type JsonFormA2UI_0_9_1Children = string[] | { componentId: string; path: string; }; type JsonFormA2UI_0_9_1SharedNode = { id: string; component: string; accessibility?: { label?: JsonFormA2UI_0_9_1DynamicString; description?: JsonFormA2UI_0_9_1DynamicString; }; weight?: number; checks?: JsonFormA2UI_0_9_1CheckRule[]; }; export type JsonFormA2UI_0_9_1ContainerComponent = JsonFormA2UI_0_9_1SharedNode & { component: 'Row' | 'Column' | 'List'; children: JsonFormA2UI_0_9_1Children; justify?: 'center' | 'end' | 'spaceAround' | 'spaceBetween' | 'spaceEvenly' | 'start' | 'stretch'; align?: 'start' | 'center' | 'end' | 'stretch'; }; export type JsonFormA2UI_0_9_1CardComponent = JsonFormA2UI_0_9_1SharedNode & { component: 'Card'; child: string; }; export type JsonFormA2UI_0_9_1TextFieldComponent = JsonFormA2UI_0_9_1SharedNode & { component: 'TextField'; label: JsonFormA2UI_0_9_1DynamicString; value?: JsonFormA2UI_0_9_1DynamicString; variant?: 'longText' | 'number' | 'shortText' | 'obscured'; validationRegexp?: string; }; export type JsonFormA2UI_0_9_1CheckBoxComponent = JsonFormA2UI_0_9_1SharedNode & { component: 'CheckBox'; label: JsonFormA2UI_0_9_1DynamicString; value: JsonFormA2UI_0_9_1DynamicBoolean; }; export type JsonFormA2UI_0_9_1ChoicePickerComponent = JsonFormA2UI_0_9_1SharedNode & { component: 'ChoicePicker'; label?: JsonFormA2UI_0_9_1DynamicString; variant?: 'multipleSelection' | 'mutuallyExclusive'; options: JsonFormA2UI_0_9_1ChoiceOption[]; value: JsonFormA2UI_0_9_1DynamicStringList; displayStyle?: 'checkbox' | 'chips'; filterable?: boolean; }; export type JsonFormA2UI_0_9_1SliderComponent = JsonFormA2UI_0_9_1SharedNode & { component: 'Slider'; label?: JsonFormA2UI_0_9_1DynamicString; min?: number; max: number; value: JsonFormA2UI_0_9_1DynamicNumber; }; export type JsonFormA2UI_0_9_1DateTimeInputComponent = JsonFormA2UI_0_9_1SharedNode & { component: 'DateTimeInput'; value: JsonFormA2UI_0_9_1DynamicString; enableDate?: boolean; enableTime?: boolean; min?: JsonFormA2UI_0_9_1DynamicString; max?: JsonFormA2UI_0_9_1DynamicString; label?: JsonFormA2UI_0_9_1DynamicString; }; export type JsonFormA2UI_0_9_1CustomComponentNode = JsonFormA2UI_0_9_1SharedNode & { [key: string]: unknown; }; export type JsonFormA2UI_0_9_1ComponentNode = JsonFormA2UI_0_9_1ContainerComponent | JsonFormA2UI_0_9_1CardComponent | JsonFormA2UI_0_9_1TextFieldComponent | JsonFormA2UI_0_9_1CheckBoxComponent | JsonFormA2UI_0_9_1ChoicePickerComponent | JsonFormA2UI_0_9_1SliderComponent | JsonFormA2UI_0_9_1DateTimeInputComponent | JsonFormA2UI_0_9_1CustomComponentNode; export declare const defineJsonFormComponents: (components: TExternal) => TExternal; export declare const defineJsonFormSchemas: () => , TExternal>[]>(schemas: TSchemas) => TSchemas; export {};