import { formItemKey, formKey, useFormItem } from '../shared';
import ComposeFormItem from './compose-form-item';
import { formProps } from './form';
import FormItem from './form-item';
export * from './type';
declare const BkForm: {
    new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
        formType: import("vue-types").VueTypeDef<string> & {
            default: string;
        };
        labelWidth: import("vue-types").VueTypeDef<string | number> & {
            default: string | number;
        };
        labelPosition: import("vue-types").VueTypeDef<string>;
        model: import("vue-types").VueTypeValidableDef<Record<string, any>, import("vue-types/dist/shared/vue-types.d8e57a80").b<Record<string, any>>> & {
            default: () => Record<string, any>;
        };
        rules: import("vue-types").VueTypeValidableDef<Record<string, any>, import("vue-types/dist/shared/vue-types.d8e57a80").b<Record<string, any>>> & {
            default: () => Record<string, any>;
        };
    }>> & Readonly<{
        onSubmit?: (...args: any[] | unknown[]) => any;
        onValidate?: (property: string, result: boolean, message: string) => any;
    }>, {
        handleSubmit: (event: Event) => void;
        validate: (fields?: Array<string> | string) => Promise<Record<string, any>>;
        getValidateResult: () => Promise<boolean>;
        clearValidate: (fields?: Array<string> | string) => void;
        resolveClassName: (cls: string) => string;
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        submit: any;
        validate: (property: string, result: boolean, message: string) => boolean;
    }, import("vue").PublicProps, {
        labelWidth: string | number;
        rules: Record<string, any>;
        formType: string;
        model: Record<string, any>;
    }, true, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
        P: {};
        B: {};
        D: {};
        C: {};
        M: {};
        Defaults: {};
    }, Readonly<import("vue").ExtractPropTypes<{
        formType: import("vue-types").VueTypeDef<string> & {
            default: string;
        };
        labelWidth: import("vue-types").VueTypeDef<string | number> & {
            default: string | number;
        };
        labelPosition: import("vue-types").VueTypeDef<string>;
        model: import("vue-types").VueTypeValidableDef<Record<string, any>, import("vue-types/dist/shared/vue-types.d8e57a80").b<Record<string, any>>> & {
            default: () => Record<string, any>;
        };
        rules: import("vue-types").VueTypeValidableDef<Record<string, any>, import("vue-types/dist/shared/vue-types.d8e57a80").b<Record<string, any>>> & {
            default: () => Record<string, any>;
        };
    }>> & Readonly<{
        onSubmit?: (...args: any[] | unknown[]) => any;
        onValidate?: (property: string, result: boolean, message: string) => any;
    }>, {
        handleSubmit: (event: Event) => void;
        validate: (fields?: Array<string> | string) => Promise<Record<string, any>>;
        getValidateResult: () => Promise<boolean>;
        clearValidate: (fields?: Array<string> | string) => void;
        resolveClassName: (cls: string) => string;
    }, {}, {}, {}, {
        labelWidth: string | number;
        rules: Record<string, any>;
        formType: string;
        model: Record<string, any>;
    }>;
    __isFragment?: never;
    __isTeleport?: never;
    __isSuspense?: never;
} & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
    formType: import("vue-types").VueTypeDef<string> & {
        default: string;
    };
    labelWidth: import("vue-types").VueTypeDef<string | number> & {
        default: string | number;
    };
    labelPosition: import("vue-types").VueTypeDef<string>;
    model: import("vue-types").VueTypeValidableDef<Record<string, any>, import("vue-types/dist/shared/vue-types.d8e57a80").b<Record<string, any>>> & {
        default: () => Record<string, any>;
    };
    rules: import("vue-types").VueTypeValidableDef<Record<string, any>, import("vue-types/dist/shared/vue-types.d8e57a80").b<Record<string, any>>> & {
        default: () => Record<string, any>;
    };
}>> & Readonly<{
    onSubmit?: (...args: any[] | unknown[]) => any;
    onValidate?: (property: string, result: boolean, message: string) => any;
}>, {
    handleSubmit: (event: Event) => void;
    validate: (fields?: Array<string> | string) => Promise<Record<string, any>>;
    getValidateResult: () => Promise<boolean>;
    clearValidate: (fields?: Array<string> | string) => void;
    resolveClassName: (cls: string) => string;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
    submit: any;
    validate: (property: string, result: boolean, message: string) => boolean;
}, string, {
    labelWidth: string | number;
    rules: Record<string, any>;
    formType: string;
    model: Record<string, any>;
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (import("vue").Plugin & Readonly<{
    FormItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        itemType: import("vue-types").VueTypeDef<string>;
        label: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
            default: string;
        };
        labelWidth: import("vue-types").VueTypeDef<string | number>;
        labelPosition: import("vue-types").VueTypeDef<string>;
        property: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
            default: string;
        } & {
            default: string;
        };
        required: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>> & {
            default: boolean;
        };
        email: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>> & {
            default: boolean;
        };
        max: import("vue-types").VueTypeValidableDef<number, import("vue-types/dist/shared/vue-types.d8e57a80").b<number>> & {
            default: number;
        };
        min: import("vue-types").VueTypeValidableDef<number, import("vue-types/dist/shared/vue-types.d8e57a80").b<number>> & {
            default: number;
        };
        maxlength: import("vue-types").VueTypeValidableDef<number, import("vue-types/dist/shared/vue-types.d8e57a80").b<number>> & {
            default: number;
        };
        rules: import("vue-types").VueTypeValidableDef<unknown[], import("vue-types/dist/shared/vue-types.d8e57a80").b<unknown[]>> & {
            default: () => unknown[];
        };
        description: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
            default: string;
        };
        errorDisplayType: import("vue-types").VueTypeDef<string> & {
            default: string;
        };
        errorTipAppendToParent: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>> & {
            default: boolean;
        };
    }>, {
        isShowLabel: import("vue").ComputedRef<boolean>;
        labelStyles: import("vue").ComputedRef<{
            width: string;
            paddingRight: string;
            textAlign: string;
        }>;
        contentStyles: import("vue").ComputedRef<{
            "margin-left": string;
        }>;
        isFormTypeVertical: import("vue").ComputedRef<boolean>;
        validate: (trigger?: string, showError?: boolean) => Promise<boolean>;
        clearValidate: () => void;
        resolveClassName: (cls: string) => string;
        isError: import("vue").Ref<boolean, boolean>;
        errorMessage: import("vue").Ref<string, string>;
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        itemType: import("vue-types").VueTypeDef<string>;
        label: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
            default: string;
        };
        labelWidth: import("vue-types").VueTypeDef<string | number>;
        labelPosition: import("vue-types").VueTypeDef<string>;
        property: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
            default: string;
        } & {
            default: string;
        };
        required: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>> & {
            default: boolean;
        };
        email: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>> & {
            default: boolean;
        };
        max: import("vue-types").VueTypeValidableDef<number, import("vue-types/dist/shared/vue-types.d8e57a80").b<number>> & {
            default: number;
        };
        min: import("vue-types").VueTypeValidableDef<number, import("vue-types/dist/shared/vue-types.d8e57a80").b<number>> & {
            default: number;
        };
        maxlength: import("vue-types").VueTypeValidableDef<number, import("vue-types/dist/shared/vue-types.d8e57a80").b<number>> & {
            default: number;
        };
        rules: import("vue-types").VueTypeValidableDef<unknown[], import("vue-types/dist/shared/vue-types.d8e57a80").b<unknown[]>> & {
            default: () => unknown[];
        };
        description: import("vue-types").VueTypeValidableDef<string, import("vue-types/dist/shared/vue-types.d8e57a80").b<string>> & {
            default: string;
        };
        errorDisplayType: import("vue-types").VueTypeDef<string> & {
            default: string;
        };
        errorTipAppendToParent: import("vue-types").VueTypeValidableDef<boolean, import("vue-types/dist/shared/vue-types.d8e57a80").b<boolean>> & {
            default: boolean;
        };
    }>> & Readonly<{}>, {
        required: boolean;
        label: string;
        email: boolean;
        property: string;
        max: number;
        min: number;
        maxlength: number;
        rules: unknown[];
        description: string;
        errorDisplayType: string;
        errorTipAppendToParent: boolean;
    }, {}, {}, {
        bkTooltips: import("vue").ObjectDirective<any, any, string, any>;
    }, string, import("vue").ComponentProvideOptions, true, {}, any>;
    ComposeFormItem: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        headBackgroundColor: {
            type: StringConstructor;
            default: string;
        };
        tailBackgroundColor: StringConstructor;
    }>, {
        resolveClassName: (cls: string) => string;
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        headBackgroundColor: {
            type: StringConstructor;
            default: string;
        };
        tailBackgroundColor: StringConstructor;
    }>> & Readonly<{}>, {
        headBackgroundColor: string;
    }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
}>);
export default BkForm;
export { BkForm, FormItem as BkFormItem, ComposeFormItem as BkComposeFormItem, formItemKey, formKey, useFormItem };
export type { formProps };
