import { PropType, InjectionKey, Ref } from 'vue'; export interface FormRule { required?: boolean; message?: string; min?: number; max?: number; pattern?: RegExp; validator?: (value: unknown) => boolean | string; } export type FormRules = Record; export interface FormContext { model: Record; rules: FormRules; errors: Ref>; labelWidth: string; size: string; layout: string; validateField: (field: string) => Promise; validate: () => Promise; clearValidate: (fields?: string[]) => void; } export declare const FormContextKey: InjectionKey; export declare const ZForm: import('vue').DefineComponent>; default: () => {}; }; rules: { type: PropType; default: () => {}; }; labelWidth: { type: StringConstructor; default: string; }; size: { type: PropType<"sm" | "default" | "lg">; default: string; }; layout: { type: PropType<"horizontal" | "vertical" | "inline">; default: string; }; }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly>; default: () => {}; }; rules: { type: PropType; default: () => {}; }; labelWidth: { type: StringConstructor; default: string; }; size: { type: PropType<"sm" | "default" | "lg">; default: string; }; layout: { type: PropType<"horizontal" | "vertical" | "inline">; default: string; }; }>> & Readonly<{}>, { size: "default" | "sm" | "lg"; model: Record; rules: FormRules; labelWidth: string; layout: "vertical" | "horizontal" | "inline"; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>; export declare const ZFormItem: import('vue').DefineComponent; default: () => never[]; }; required: { type: BooleanConstructor; default: boolean; }; size: { type: StringConstructor; default: string; }; }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly; default: () => never[]; }; required: { type: BooleanConstructor; default: boolean; }; size: { type: StringConstructor; default: string; }; }>> & Readonly<{}>, { label: string; size: string; required: boolean; rules: FormRule[]; prop: string; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;