import { PropType, InjectionKey } from "vue"; import { ExtractPublicPropTypes } from "../../util/extract-public-props"; import type { FormItemInst } from "./FormItem"; export interface FormRules { [key: string | number | symbol]: { required?: boolean; message?: string; validator?: (rule: any, value: any) => boolean | Error; }[]; } export interface FormInst { validateField: (path: string, callback: (message?: string) => void) => void; validate: (callback: (message?: string) => void) => void; } interface FromApiInjection { model?: Object; rules?: FormRules; formItems: Record; } export declare const formApiInjectionKey: InjectionKey; declare const formProps: { labelWidth: { type: StringConstructor; default: string; }; labelPlacement: { type: PropType<"top" | "left">; default: string; }; model: ObjectConstructor; rules: PropType; }; export declare type FormProps = ExtractPublicPropTypes; declare const _default: import("vue").DefineComponent<{ labelWidth: { type: StringConstructor; default: string; }; labelPlacement: { type: PropType<"top" | "left">; default: string; }; model: ObjectConstructor; rules: PropType; }, { cssVars: import("vue").ComputedRef<{ "--jo-label-width": string; "--jo-border-color-error": string; }>; validateField: (path: string, callback: (message?: string | undefined) => void) => void; validate: (callback: (message?: string | undefined) => void) => void; }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly; default: string; }; model: ObjectConstructor; rules: PropType; }>>, { labelWidth: string; labelPlacement: "top" | "left"; }>; export default _default;