import { type ButtonProps, FormItemProp, FormValidateCallback, FormValidationResult, FormItemContext } from 'element-plus'; import { ExtractPropTypes, SlotsType, type PropType } from 'vue'; import { type RowProps } from '../row'; import { type ColPublicProps } from '../col'; import { type FormItemWidth } from './form-item.api'; import { Arrayable } from '@vueuse/core'; export declare const formProps: { width: { type: PropType; }; grid: { type: BooleanConstructor; default: boolean; }; rowProps: { type: PropType; }; colProps: { type: PropType; }; readonly: { type: BooleanConstructor; default: boolean; }; submit: { type: PropType<() => any | Promise>; }; reset: { type: PropType<() => any>; }; submitText: { type: StringConstructor; default: string; }; resetText: { type: StringConstructor; default: string; }; submitProps: { type: PropType; }; resetProps: { type: PropType; }; hideSubmit: { type: BooleanConstructor; }; hideReset: { type: BooleanConstructor; }; hideButtons: { type: BooleanConstructor; }; model: ObjectConstructor; rules: { readonly type: import("vue").PropType>>>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; labelPosition: import("element-plus/es/utils/index.mjs").EpPropFinalized; requireAsteriskPosition: import("element-plus/es/utils/index.mjs").EpPropFinalized; labelWidth: import("element-plus/es/utils/index.mjs").EpPropFinalized; labelSuffix: import("element-plus/es/utils/index.mjs").EpPropFinalized; inline: BooleanConstructor; inlineMessage: BooleanConstructor; statusIcon: BooleanConstructor; showMessage: import("element-plus/es/utils/index.mjs").EpPropFinalized; validateOnRuleChange: import("element-plus/es/utils/index.mjs").EpPropFinalized; hideRequiredAsterisk: BooleanConstructor; scrollToError: BooleanConstructor; scrollIntoViewOptions: import("element-plus/es/utils/index.mjs").EpPropFinalized<(new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions) | ((new (...args: any[]) => boolean | ScrollIntoViewOptions) | (() => boolean | ScrollIntoViewOptions))[], unknown, unknown, true, boolean>; size: { readonly type: import("vue").PropType>; readonly required: false; readonly validator: ((val: unknown) => boolean) | undefined; __epPropKey: true; }; disabled: BooleanConstructor; }; export type FormProps = ExtractPropTypes; export declare const formPropsOmit: readonly ["grid", "rowProps", "colProps", "width", "readonly", "submit", "reset", "submitText", "resetText", "submitProps", "resetProps", "hideSubmit", "hideReset", "hideButtons"]; export interface FormSlots { default: {}; button: { submitting: boolean; submit: () => any | Promise; reset: () => any; }; } export declare const formSlots: SlotsType; export declare const formEmits: { validate: (prop: FormItemProp, isValid: boolean, message: string) => boolean; }; export type FormEmits = typeof formEmits; export interface FormExpose { reset: (callback?: () => void) => void; submit: () => Promise; validate: (callback?: FormValidateCallback) => FormValidationResult; validateField: (props?: Arrayable, callback?: FormValidateCallback) => FormValidationResult; resetFields: (props?: Arrayable) => void; clearValidate: (props?: Arrayable) => void; scrollToField: (prop: FormItemProp) => void; fields: FormItemContext[]; } export declare const formExposeKeys: string[]; export interface FormContext { colProps?: ColPublicProps; grid?: boolean; readonly?: boolean; width?: FormItemWidth; addResetField: (reset: () => void) => void; removeResetField: (reset: () => void) => void; } export declare const formContextSymbol: unique symbol; export interface FormBubbleData { readonly: boolean; submitting: boolean; submit: (throwError?: boolean, shouldReset?: boolean) => any | Promise; reset: () => any; resetFields: () => any; clearValidate: () => any; } export interface FormBubbleContext { setFormBubbleData: (data: FormBubbleData) => void; confirm: () => Promise; } export declare const formBubbleContextSymbol: unique symbol;